コード
class Test {
public static void main(String args[]) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
modify(a, b);
System.out.println(a + " " + b);
}
public static void modify(StringBuffer a, StringBuffer b) {
a.append(b);
a = b;
System.out.println(a + " " + b);
}
}
関数内のprintステートメントを理解しています。また、クラスが文字列をインプレースで変更するため、文字列が「AB」を参照するmodify
ことも知っています。StringBuffer
a.append(b)
String a
私の質問は、関数の外側で「AB」に変更する方法ですmodify
が、ステートメントa=b
は関数の外側に影響を与えませんmodify
。基本的に、変数が値渡しされるのはいつですか、参照渡しはいつですか?