传递的参数是通过传值,
传入的的StringBuffer x,StringBuffer y,这两个的值都指向原来a,b对象的引用
x.append(y),就相当于a.append(b),因为调用方法的时候,引用是相同的
但是y = x时,只是把y的引用改变,对值是没有影响的

解决方案 »

  1.   

    楼上说的"但是y = x时,只是把y的引用改变,对值是没有影响的" 感觉是不对的如果 y = x;
    换成:
    y.delete(0, y.length());
    y.append(x);那么结果: y = AB忘记从哪里看过, StringBuffer和普通的对象相比比较特殊. 
    赋值"="操作对于二者的作用是不同的, 具体为什么, 忘记了:)
    如果需要改变传进来的引用, 那么只有像上面一样, 调用该引用的方法.