Java - 是`null`是`object`的一个实例?

JDe*_*age 33 java

我读到这null不是instanceof什么,但另一方面,Java 中的所有东西都扩展了Object类.

小智 56

不,这是一个reference.null不是对象

String s = null;

System.out.println(s instanceof Object); // false
Run Code Online (Sandbox Code Playgroud)


NPE*_*NPE 9

总之,没有.

Peter Norvig的Java IAQ详细解决了这个问题(特别是" Q:null是一个对象吗? ")


sau*_*ata 5

还有一个特殊的null类型,表达式的类型为null,没有名称.由于null类型没有名称,因此无法声明null类型的变量或转换为null类型.空引用是null类型表达式的唯一可能值.null引用始终可以强制转换为任何引用类型.在实践中,程序员可以忽略null类型,只是假装null只是一个特殊的文字,可以是任何引用类型

Java语言规范