Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中以对象的形式传递null,不带任何错误_Java - Fatal编程技术网

在java中以对象的形式传递null,不带任何错误

在java中以对象的形式传递null,不带任何错误,java,Java,基于下面的程序,我不清楚null是否是一个对象,因为我的程序编译得很好,没有任何错误。我认为当我在第1行传递null时,它会给出一个null指针异常 public class GC { private Object o; private void doSomethingElse(Object obj) { o = obj; System.out.println(o); // prints null } public stat

基于下面的程序,我不清楚null是否是一个对象,因为我的程序编译得很好,没有任何错误。我认为当我在第1行传递null时,它会给出一个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
    }
}

当您将对象作为参数传递时,将传递其“地址”
null
传递地址值0。如果您对代码编译的原因感到好奇,那就是原因。

否,“null”是一个值。在java中,您将参数传递给函数作为引用(基本类型除外),该引用的值“指向”对象。在这种情况下,参考点的值为零

补充说明

整数n=新整数(8)

n-是对内存中对象的引用。此引用的值类似于
Integer@23434342
,如内存地址。在这个地址是你的对象,有一个包含
8
的字段


n=null
表示
n
不指向任何地方。这就是为什么它具有参考价值

否,null是一个文本表达式。此文字表达式的值是“空引用”。null引用是null类型表达式的唯一可能值


我不明白你在说什么,我补充了解释。