java默认局部对象变量初始化

java default local object variable initialization

在 java OCA 书中 Oracle Certified Associate Java SE 8 Programmer 中有这个 QCM: (第 1 章问题编号 12)

一个对象类型的局部变量默认为空 他们回答说那是假的。

但我认为这是一个错误,因为当我们声明这个时: 对象对象;作为方法中的局部变量,代码编译良好,所以对象为空 大家怎么看?

当您在方法内声明 Object obj; 时,obj 未初始化。这仍然是完全合法的,但是你不能在不初始化的情况下访问 obj。如果再往前写一点:

Object local;

if (local == null) {
    // something
}

编译器会阻止你。