为什么必须在Java中将变量初始化为默认值

swd*_*per 7 java default-value variable-initialization

在一篇关于如何在Java中初始化对象的文章中,有一段如下:

在对象生命的开始,Java虚拟机(JVM)在堆上分配足够的内存以容纳对象的实例变量.但是,首次分配该内存时,它包含的数据是不可预测的.如果按原样使用内存,则对象的行为也是不可预测的.为了防范这种情况,Java确保在任何代码使用内存之前初始化内存,至少是可预测的默认值.

任何人都可以解释这是什么意思unpredictable dataunpredictable behavior在这里.提前致谢

Vik*_*dor 5

任何人都可以在这里解释不可预测的数据和不可预测的行为的含义.

如果使用C/C++进行编程,您会注意到未初始化的变量带有一些垃圾值,存在于分配给它的内存位置,根据变量的数据类型进行解释.编译器不会抱怨此类变量,如果开发人员忘记正确初始化它们,则会使用垃圾值,从而导致程序出现意外行为.

在Java中,JVM根据变量的数据类型将所有成员变量初始化为默认值,并抱怨在编译期间未初始化的局部变量,以避免此类意外行为并使开发人员始终使用初始化变量.