我已经完成了关于 Java 总是通过值传递的一些答案,例如在下面的代码中。
public class Sample {
public void show(String s){
s="A";
}
public static void main(String []args) {
String s="B";
new Sample().show(s);
System.out.println(s);
}
}
String s;
意味着只是一个引用被创建,因为我的老师说它没有创建对象
所以,在上面的代码中s=B
;意味着s
保存B
的引用,即存储它的位置是我对这个正确的理解吗?
何时执行show(s);
在方法 show 的定义中,没有创建新的String
对象,只传递引用。
在main方法中创建的 String s
和show方法中的一个都引用内存中的同一个对象,如果两个引用相同的对象则应该“A”不打印向屏幕?
两者都指的是同一个对象,为什么不打印“A”并打印“B”?
我是 Java的新手我已经阅读了一些关于该问题的先前答案,并且带有2个参考箭头的图表的答案指向同一个对象让我更加困惑 我可能误解了答案,所以请不要关闭我的问题,因为重复我需要一些帮助。
答案 0 :(得分:1)
它通过引用传递,但引用本身是按值传递的,而在show
中,它会覆盖引用。
这就是你应该教指针的原因:/