【问题标题】:Default values of instance variables and local variables实例变量和局部变量的默认值
【发布时间】:2010-01-15 19:00:22
【问题描述】:

我读到 Java 为类属性提供默认值,但不为局部变量提供默认值。对吗?

如果是这样,这背后的原因是什么?当你做好事时,为什么不一直做呢?

【问题讨论】:

标签: java


【解决方案1】:

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

【解决方案2】:

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

如果你声明一个局部变量,你这样做是为了使用它。使用与赋值有关。因此,访问已声明但未初始化的变量并没有多大意义——程序员可能只是忘记了初始化变量。

然而,字段可能只在对象生命周期中的指定点之前或之后使用。强制程序员将它们全部初始化是不好的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多