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

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

谢谢,
罗杰

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

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

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

但是,字段可能仅在对象的生命周期中或在指定点之后使用。 强制程序员初始化它们都不会很好。