java全局变量初始化_为什么 Java 中全局变量不一定初始化,局部变量必须初始化?...

本文探讨了Java中全局变量与局部变量初始化的区别。类的成员变量在JVM加载阶段会自动赋予默认值,而方法内的局部变量必须在声明时初始化。原因涉及内存分配、性能和编程习惯,旨在避免潜在的错误和提高代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天,有个大佬考了我一个问题:为什么类的成员变量不需要指定值就可以自动赋予初始值,而方法内的局部变量就必须指定初始值呢?

说实话,这个问题确实难倒我了,之后我在网上一顿操作,终于把这个问题弄得稍微明白一点了。

首先我给出一个具体的场景来说明这个事情:

9856d2e414f716d250cf0da48046b165.png

定义一个Cat类,里面有各种属性,包括8大基本数据类型和String类型,我们把String类视为复杂数据类型。Cat类里面有一个setAge方法。我们在main方法里面给tom这个Cat赋值年龄,结果发现,如果给定的年龄没有赋初始值,编译器会报错:

3d5fc092b602c7eea5d86ae0eb736ea1.png

那我们来看下未给Cat里面的各种属性初始化,各项属性的初始值究竟是怎样的:

重写一下toString方法:

acebcf7c806ff2c5cb442bfce0b51035.png

然后输出结果为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值