public class foo {
public static void main(String sgf[]) {StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
operate(a,b);
System.out.println(a+"."+b);
}
static void operate(StringBuffer x,StringBuffer y) {
x.append(y);
y=x;
}
}
StringBuffer保存的某个对象的地址如下:
operate方法中的x:append(y),是对x和y的对象进行操作
所以在A的后面加上B,变成
y=x,则时将x引用的地址赋给y,b指向B的地址不变,如下图
最后打印出来为AB.B