以下代码结果是什么?

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;
}
}

代码可以编译运行,输出"AB.B"

""

 

引用a指向对象A
引用b指向对象B
引用x指向对象A
引用y指向对象B
在operate方法中,引用x指向的对象A被连接了B,对象A也就被改变为AB
然后又把引用y指向了x所指向的对象地址,也就是此时引用a,x,y指向同一个对象AB
而引用b没有发生任何变化,依旧指向对象B。
posted @ 2019-02-27 10:28  Lily姐姐  阅读(373)  评论(0编辑  收藏  举报