Java中是否为Object
?
答案 0 :(得分:161)
如果null是Object,它将支持java.lang.Object
的方法,例如equals()
。但是,情况并非如此 - 对null的任何方法调用都会产生NullPointerException
。
这就是Java Language Specification对此主题所说的话:
还有一个特殊的null类型 表达式的类型为null,具有 无名。因为null类型没有 名字,不可能申报 null类型的变量或者要转换 到null类型。空引用 是唯一可能的价值 null类型的表达式。 null 引用总是可以转换为任何引用 参考类型。 在实践中, 程序员可以忽略null类型 并假装null只是一个 可以是任何特殊文字 参考类型。
我认为这可归结为“null is special”。
答案 1 :(得分:30)
根据Java spec,null
是一种可以分配给对象变量的类型(作为注释中注明的值)。但是,您无法实例化或创建此类型的变量,您必须使用编译器提供的文字null
。
答案 2 :(得分:27)
绝对不是:null instanceof Object
返回false。
答案 3 :(得分:12)
不,这不是一个对象。
答案 4 :(得分:11)
Null是缺少对象。
答案 5 :(得分:9)
不,它不是Class的实例,也不是Class的实例。这是对任何事物的引用。
修改:尚未阅读规范,因此上述内容可能不是100%准确。
答案 6 :(得分:4)
不,不是一个对象,因为null instanceof对象总是返回false也只有一个null,而不是每个类一个。
答案 7 :(得分:4)
如Java语言规范的4.1 The Kinds of Types and Values一章所述, null是一个具有一个值的类型,空引用(由文字null
表示):
还有一个特殊的 null 类型 表达式
null
的类型,具有 无名。因为null类型没有 名字,不可能申报 null类型的变量或者要转换 到null类型。空引用 是唯一可能的价值 null类型的表达式。 null 引用总是可以转换为任何引用 参考类型。在实践中, 程序员可以忽略null类型 并假装null
仅仅是一个 可以是任何特殊文字 参考类型。
答案 8 :(得分:4)
根据Java Spec,
还有一个特殊的空文字 可以用作任何值的值 参考类型。可以分配null 到任何变量,除了变量 原始类型。你没什么 可以使用null值 测试它的存在。因此, null经常在程序中用作 标记表示某个对象是 不可用。
答案 9 :(得分:4)
没有。即使它是它,它也没用,因为它没有任何方法或领域。
答案 10 :(得分:4)
Java通过引用处理对象。 Null是Java的OO-ness细分,因为它会使你低于OO级别。不,它不是一个对象,它是一个引用的值。它与对象范例无关,但与启用对象的Java管道有关。
答案 11 :(得分:3)
null是java.lang.Object
的实例吗?没有。
对象是null吗?取决于“是”的定义。
答案 12 :(得分:2)
Object foo = null;
System.out.println(foo.toString());
第一行显示null
可以分配到Object
类型,但第二行会证明它肯定不是Object
,最终会产生java.lang.NullPointerException
< / p>
答案 13 :(得分:1)
不,null
不是对象。它是一个引用类型,它的值不引用任何对象,因此内存中没有null
的表示。