今天做错的笔试题:StringBuffer引用传参
代码:
public static void T3()
{
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
switchStr(a, b);
System.out.println(a+","+b);
}
public static void switchStr(StringBuffer x,StringBuffer y)
{
x.append(y);
System.out.println(x);
y=x;
System.out.println(y);
}
容易搞错T3()的结果是:
AB
AB
AB,AB
其实正确答案是:
AB
AB
AB,B
好吧,解题思路这样子:
刚刚进入switchStr(a,b)执行到x.append(y);这句的时候。。。
![](https://img-my.csdn.net/uploads/201212/08/1354981761_1177.jpg)
精彩啊在此:::执行到y=x; 这句的时候,就成样了。
所以,打印a+","+b就是"AB,B"了。
........ao,ao.........
所以,打印a+","+b就是"AB,B"了。
另外一个网友“北京-袋鼠”的总结如下
人生有几个十年呢?点点滴滴,用文字记录