为了账号安全,请及时绑定邮箱和手机立即绑定

Java局部变量为什么要初始化

Java局部变量为什么要初始化

猛跑小猪 2018-09-11 00:05:26
Java局部变量为什么要初始化 如题。谢谢。
查看完整描述

2 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

  1. 编译器通不过

  2. 如果没有初始化,类似c的随便指了一个地址。所以java直接编译失败了。


查看完整回答
反对 回复 2018-09-16
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

首先纠正一个观点,全局变量和局部变量都是需要初始化的。这是因为使用没有初始化的变量是不安全的。只不过全局变量的初始化工作可以交给JVM。而为什么局部变量不可以呢。我认为是出于性能等多方面的考虑。

成员变量的值存放于堆中,JVM在分配内存时将整块区域置为零即完成了初始化,方便快捷。而局部变量运行时被分配于栈中,量大,生命周期短,如果由JVM完成初始化,将是一笔很大的性能开销。所以java明文规定局部变量必须初始化。

建议学习一下jvm内存模型


查看完整回答
反对 回复 2018-09-16
  • 2 回答
  • 0 关注
  • 1410 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信