转载

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

1) 局部变量初始化(局部变量:函数、语句中的变量,只在所属区域内有效)

局部变量声明后,Java虚拟机不会自动给它初始化为默认值。

因此 对于局部变量,必须经过显示的初始化,才能使用它。

如果使用一个没有被初始化的局部变量,编译器会报错。

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

例:

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

2) 对于 类的成员变量,不管程序有没有显示的初始化,Java虚拟机都会先自动给它初始化为默认值。

对于数组, 数组引用类型的变量的默认值为null。当数组变量实例化后,如果没有显式地为每个元素赋值,Java会把该数组的所有元素初始化为相应类型的默认值。

这是因为所有对象实例以及数组是在堆上分配内存的。在内存分配完成后,虚拟机需要将分配到的内存空间都初始化为零值(不包括对象头)。

这一操作保证了对象的实例字段在java代码中可以不赋初值就直接使用,程序能访问这些字段的数据类型所对应的零值。

例1:

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

例2:

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

运行结果:

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

例3:

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

运行结果:

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

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-05/152638.htm

原文  https://www.linuxidc.com/Linux/2018-05/152638.htm
正文到此结束
Loading...