【发布时间】:2013-12-28 05:41:51
【问题描述】:
我是 Java 技术的新手,可能这是一个简单的问题,但我很困惑。我知道java中没有引用调用的概念。它只使用按值调用,即将副本传递给另一个方法
请检查以下代码的输出
public class Test {
public static void main(String[] args) {
StringBuffer a = new StringBuffer ("A");
StringBuffer b = new StringBuffer ("B");
System.out.println("Before Operate"+a + "," +b);
operate (a,b);
System.out.println(a + "," +b);
}
static void operate (StringBuffer x, StringBuffer y) {
x.append(y);
y = x.append("C");
y.append("D");
}
}
上述代码的输出是 :ABCD , B (Second Syso)
我不确定为什么将所有内容都附加在 a 而不是 b 中。 我用谷歌搜索了很多,但它只会造成混乱。因此,如果有人详细说明它会很有帮助。
提前致谢
P.S:-如果这个论坛已经有人问过这个问题,请给我一个链接,因为我找不到它。
【问题讨论】:
-
你在期待什么,我们无法读懂你的想法!
-
基本上,你让 y 指向 x,然后使用那个引用,改变内容 y(意思是 x),你实际上根本没有改变 y
标签: java stringbuffer