我以前還以為搞清楚了這個問題了,今天又發現一貼,又有點進步!
public class TestStringBuff {
public static void main(String[] args){
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
Operate(a,b);
System.out. }
static void operate(StringBuffer x,StringBuffer y){
x.append(y);
y=x;
}
}
這里print出來的值是AB,A
把我理解的寫出來,也不知是不是對的。
operate(a,b);這時,傳給方法的時對象的引用值,???
在x.append(y);時,a對象是“AB”,其引用值改變了,變成了“AB”對象的引用值
而 y=x;執行的時引用的拷貝,b對象沒有變,只是變化了它的引用值,
而在方法main中保存的對象b沒有改變,所以System.out.println(a+","+b);出來的是AB,A
新聞熱點
疑難解答