您的位置:首页 > 编程语言 > Java开发

Java的局部变量没有系统默认初始值

2016-02-23 21:04 288 查看
在看Think in java 中看到这样一句话:

“未初始化的局部变量更有可能是程序员的疏忽, 所以采用默认值反而会掩盖这种失误”

然后才去验证,发现,局部变量都必须要显式地初始化,不然编译不通过。

而全局变量不用显式地初始化,如果漏掉初始化,系统默认给以初始值:

int ---> 0

long
---> 0L

boolean
---> false

Object
---> null     等等

对于全局变量的默认初始化:  “无法阻止自动初始化的进行, 它将在构造器发生之前发生”。

在创建对象时“这块存储空间会被清零,这就自动的将对象中的所有基本类型设置为默认值,而引用设置为NULL”

之前我的理解是:对象在生成时,利用反射可以得到类信息,所以类中的全局变量就可以被默认赋值,但是局部变量是方法被调用之后才会分配存储空间的,也无法通过反射手段得到变量信息,所以必须显式初始化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: