我看了Java does everything by call by value.我想知道如何验证这个事实?据我所知,在对象(非基元)的情况下,函数获得自己的引用副本但指向同一个对象.在这种情况下,该对象在被调用函数和调用函数中的引用应该不同?我该如何验证?换句话说,如何打印对象的引用.
System.out.println(object); //does this print reference i.e text following @
编辑:
我知道在callee函数中修改对象会改变调用函数中的值.我感兴趣的是如何打印对象的引用,因为我可以在控制台上打印哪些属性,这清楚地显示了我2个不同的参考.
解决方法:
Java按值传递引用.这意味着您将获得引用的副本,因此一旦取消引用,您将获得堆中与原始引用相同的对象.
但是如果Java通过引用传递:
public static void nullify(Object obj) {
obj = null;
}
public static void main(...) {
String x = "Hello";
nullify(x);
System.out.println(x);
}
对S.o.p.的呼吁如果Java通过引用传递,则会打印null.但它不是,所以x没有变化,你会得到你好.
标签:java,parameter-passing
来源: https://codeday.me/bug/20190721/1494775.html