实例变量和局部变量的默认值

时间:2010-01-15 19:00:22

标签: java

我读到Java为类属性提供了默认值,但没有为局部变量提供默认值。那是对的吗?如果是这样的话背后的原因是什么?当你做的事情好的时候,为什么不一直这样做呢?

谢谢,
罗杰

2 个答案:

答案 0 :(得分:27)

标准局部变量存储在堆栈中,并且在初始化之前不会实际创建。如果未使用局部变量,则它不会进入堆栈。但是,成员变量在堆中分配,因此具有默认占位符(空引用或默认原语)。

答案 1 :(得分:1)

背后的非技术原因也可能是以下原因:

如果声明局部变量,则执行此操作以使用它。用法与分配值有关。因此,访问声明但未初始化的变量没有多大意义 - 程序员可能只是忘记初始化变量。

但是,

字段只能在对象生命周期中的指定点之前或之后使用。强迫程序员初始化它们都不会很好。

相关问题