class StringBufferTest
{
public static void main(String[] args)
{
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
change(a,b);
System.out.println(a+","+b);//A
} private static void change(StringBuffer a,StringBuffer b){
a.append(b);
b=a;
System.out.println(a+","+b);//B
}
}-----------------
A和B,爲什麽結果不一樣?
{
public static void main(String[] args)
{
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
change(a,b);
System.out.println(a+","+b);//A
} private static void change(StringBuffer a,StringBuffer b){
a.append(b);
b=a;
System.out.println(a+","+b);//B
}
}-----------------
A和B,爲什麽結果不一樣?
——这一句对形参的改变,影响不了实参。a.append(b);
——这一个不一样,它没有直接去改变形参引用,而只是通过这个引用去修改了那个被引用的对象。而那个对象,现在恰恰是被形和实参同时引用着。