java 初始化 零值_Java变量初始化之后的默认值问题(转)

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

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

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

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

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

例:

c1bd827568a66d2dc6730dabdd39de46.png

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

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

这是因为所有对象实例以及数组是在堆上分配内存的。在内存分配完成后,虚拟机需要将分配到的内存空间都初始化为零值(不包括对象头)。这一操作保证了对象的实例字段在java代码中可以不赋初值就直接使用,程序能访问这些字段的数据类型所对应的零值。

例1:

f412f2bd0de6e9c92c638449437a7b4e.png

例2:

81e93a36a4daab4c5077a52521f5c30d.png

运行结果:

fddc8632715ce9d5b809df0285c0af15.png

例3:

697d270a2a2f25cd80431be7d4713b03.png

运行结果:

c6685cca7b185ad4261b96f5b03ba80b.png

转字:https://www.cnblogs.com/zeroingToOne/p/9100818.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值