如何验证Java的值调用?

pra*_*p19 3 java parameter-passing

我读到Java通过值调用来完成所有操作.我想知道如何验证这个事实?据我所知,在对象(非基元)的情况下,函数获得自己的引用副本但指向同一个对象.在这种情况下,该对象在被调用函数和调用函数中的引用应该不同?我该如何验证?换句话说,如何打印对象的引用.

System.out.println(object);  //does this print reference i.e text following @
Run Code Online (Sandbox Code Playgroud)

编辑: 我知道在callee函数中修改对象确实会改变调用函数中的值.我感兴趣的是如何打印对象的引用,因为我可以在控制台上打印哪些属性,这清楚地显示了我2个不同的参考.

Nul*_*ion 9

Java 按值传递引用.这意味着您将获得引用的副本,因此一旦取消引用,您将获得堆中与原始引用相同的对象.

但是如果Java通过引用传递:

public static void nullify(Object obj) {
    obj = null;
}

public static void main(...) {

    String x = "Hello";        
    nullify(x);

    System.out.println(x);
}
Run Code Online (Sandbox Code Playgroud)

null如果Java通过引用传递,则会打印对Sop的调用.但它不是,所以x没有变化,你会得到Hello.