我认为null
不是instanceof
任何内容,但另一方面,Java中的一切扩展了Object
类。
答案 0 :(得分:56)
不,这是reference
。 null不是对象
String s = null;
System.out.println(s instanceof Object); // false
答案 1 :(得分:8)
总之,没有。
Peter Norvig的Java IAQ详细解决了这个问题(具体是“Q: Is null an Object?”)
答案 2 :(得分:5)
还有一个特殊的null类型 表达式的类型为null,具有 无名。因为null类型没有 名字,不可能申报 null类型的变量或者要转换 到null类型。空引用 是唯一可能的价值 null类型的表达式。 null 引用总是可以转换为任何引用 参考类型。在实践中, 程序员可以忽略null类型 并假装null只是一个 可以是任何特殊文字 参考类型
答案 3 :(得分:3)
Null表示您没有对象的引用。
Object o = null;
o是一个引用,但没有引用对象,也没有为它分配内存。
o = new Object();
o仍然是一个引用,并保存对象在内存中的地址
答案 4 :(得分:2)
不,null
不是对象。它是一个文字,意味着变量不引用任何对象。
答案 5 :(得分:1)
正如JLS所说,null
属于null类型,而不是引用类型。然而,它可用于期望引用类型的值的情况下(该值在类型代数中实际上是“底部”)。
答案 6 :(得分:0)
希望这个例子清除你的怀疑:
public void printObject(Object object) {
System.out.println("object referred");
}
public void printObject(double[] doubleArray) {
System.out.println("Array of type double");
}
public static void main(String[] args) {
JavaNullObjectTest javaNullObjectTest = new JavaNullObjectTest();
javaNullObjectTest.printObject(null); //Array of type double
javaNullObjectTest.printObject((Object)null); //object referred
}
我们可以,但是,将'null'转换为对象。