Java变量初始化之后的默认值问题

1) 局部变量初始化(局部变量:函数、语句中的变量,只在所属区域内有效)
局部变量声明后,Java虚拟机不会自动给它初始化为默认值。
因此对于局部变量,必须经过显示的初始化,才能使用它。
如果使用一个没有被初始化的局部变量,编译器会报错。

局部变量存储于虚拟机栈的局部变量表中
例:

Java变量初始化之后的默认值问题

2) 对于类的成员变量,不管程序有没有显示的初始化,Java虚拟机都会先自动给它初始化为默认值。
对于数组,数组引用类型的变量的默认值为null。当数组变量实例化后,如果没有显式地为每个元素赋值,Java会把该数组的所有元素初始化为相应类型的默认值。
这是因为所有对象实例以及数组是在堆上分配内存的。在内存分配完成后,虚拟机需要将分配到的内存空间都初始化为零值(不包括对象头)。这一操作保证了对象的实例字段在java代码中可以不赋初值就直接使用,程序能访问这些字段的数据类型所对应的零值。

例1:

Java变量初始化之后的默认值问题

例2:

Java变量初始化之后的默认值问题

运行结果:

Java变量初始化之后的默认值问题

例3:

Java变量初始化之后的默认值问题

运行结果:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b17b8e7237a0a8e281e3a6b96f5a67fa.html