Java将对象作为方法中的参数传递

时间:2013-06-07 19:08:28

标签: java

我已经完成了关于 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个参考箭头的图表的答案指向同一个对象让我更加困惑 我可能误解了答案,所以请不要关闭我的问题,因为重复我需要一些帮助。

1 个答案:

答案 0 :(得分:1)

它通过引用传递,但引用本身是按值传递的,而在show中,它会覆盖引用。 这就是你应该教指针的原因:/