深入浅析Java中的变量和初始化

这期内容当中小编将会给大家带来有关深入浅析Java中的变量和初始化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

我们提供的服务有:成都网站设计、成都做网站、微信公众号开发、网站优化、网站认证、巴楚ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的巴楚网站制作公司

实例如下:

class Person
{
  String name;
  int age;
  void talk()
  {
    System.out.println("我是: "+name+", 今年: "+age+"岁");
  }
}
 
public class TestJava2_1
{
  public static void main(String args[])
  {
    Person p;
    if (p == null)
    {
      p = new Person();
    }
     
    p.name = "张三";
    p.age = 25;
    p.talk();
  }
}

为了更好的了解Java中变量的使用方式,我们做一个实验。将以上代码保存为TestJava2_1.java文件,之后执行 “javac TestJava2_1.java” 命令将代码编译成二进制文件。

编译时将报错,报错内容大致如下:

“TestJava2_1.java:59: 错误: 可能尚未初始化变量p”

编译器认为引用数据类型变量p未初始化,所以不可以判断是否等于null,但我认为编译器对于此错误的表述不太准确。就算变量p没有给予初始值,默认值至少是存在的,那么用默认值和null比较有什么不可以呢。我认为正确的错误表述应该是 “变量p尚未分配内存空间”。“Person p” 仅仅是声明有一个引用数据类型变量p,但并未给p分配任何内存空间,这点和C/C++是不一样的。

将变量p的声明改为 “Person p = null” 后,执行 “javac TestJava2_1.java” 就能够成功编译。可见 “Person p = null” 语句除了赋予变量p初值外,还在赋值前为变量p分配了内存空间。

从上面的实验中可以看出,Java中引用数据类型变量的内存分配在赋初值时进行。用相同的方法测试Java中的基本数据类型变量,同样可以发现变量在声明时并没有分配内存,真正的内存分配是在赋初值时进行的。

注上面的有错误,如果是int a;

a变量是分配了内存单元的。a默认值是0;

所以基本类型在声明的时候就分配了内存单元。

上述就是小编为大家分享的深入浅析Java中的变量和初始化了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


本文题目:深入浅析Java中的变量和初始化
网页URL:http://hbruida.cn/article/giepej.html