初心者の質問をご容赦ください。インターネットで次のコードフラグメントを見つけました。
public class Person {
public static void main(String [] args)
{
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println(a+","+b);
}
static void operate(StringBuffer x, StringBuffer y)
{
y.append(x);
y=x;
}
}
実行中の出力は A,A である必要があることがわかりましたが、正しい出力は A,BA である必要があります。b の値がまだ AB である理由を専門家に理解してもらえますか? 「y.append(x)」が b の値に影響するのに、「y=x」には影響しないのはなぜですか? それが私が混乱しているところです。
前もって感謝します。