空是对象吗?

2022-08-31 08:32:12

在 Java 中,null 是 null 吗?Object


答案 1

如果 null 是一个 Object,它将支持 诸如 .但是,事实并非如此 - 对 null 的任何方法调用都会导致 .java.lang.Objectequals()NullPointerException

这就是Java语言规范在这个主题上要说的:

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

我认为这可以归结为“null是特殊的”。


答案 2

根据 Java 规范,是一种可以分配给对象变量的类型(作为注释中注明的值)。但是,您无法实例化或创建此类型的变量,但必须使用编译器提供的文字。nullnull