未初始化的对象vs对象初始化为NULL

我正在使用Java。

我通常设置一些对象如下:

public class Foo { private SomeObject someName; // do stuff public void someMethod() { if (this.someName != null) { // do some stuff } } } 

问题是:在这个例子中的someName等于null ,因为我可以reliably for all objects假设空检查未初始化的对象将是准确的?

正确的,未明确初始化的引用types的静态和实例成员都被Java设置为null 。 同样的规则适用于arrays成员。

从Java语言规范的第4.12.5节:

variables的初始值

程序中的每个variables在使用其值之前都必须有一个值:

每个类variables,实例variables或数组组件在创build时均使用默认值进行初始化

对于所有的引用types,默认值为null

请注意,上述规则排除了局部variables:它们必须被显式初始化,否则程序将不能编译。

如果已经声明了Object引用但未实例化,则其值为null