根据下面的程序,我很困惑null是否是一个对象因为我的程序编译得很好而没有任何错误。我认为它会给出一个空指针异常,因为我在第1行传递null
public class GC {
private Object o;
private void doSomethingElse(Object obj)
{
o = obj;
System.out.println(o); // prints null
}
public static void main(String[] args) {
GC g = new GC();
g.doSomethingElse(null); // LINE 1
}
}
答案 0 :(得分:3)
不,'null'是一个值。在java中,您将参数传递给函数作为引用(基本类型除外),其值(此引用的)'指向'对象。在这种情况下,参考值指向任何东西。
补充说明;
Integer n = new Integer(8);
n - 是对内存中对象的引用。此引用的值类似于Integer@23434342
,类似于内存地址。在此地址是您的对象,其中一些字段包含8
。
n = null
告诉n
无处可指。这就是为什么它是一个参考价值。
答案 1 :(得分:1)
当您将对象作为参数传递时,它的'地址通过。 null
传递地址值0.如果您对代码编译的原因感到好奇,那就是原因。
答案 2 :(得分:0)
不,null是一个文字表达式。此文字表达式的值是" null引用"。空引用是null类型表达式的唯一可能值。