画一个针对下面代码中的 a, b, x, y 四个变量在内存中变化的示意图
public class Example
{
public static void main(String argv[])
{
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
System.out.println(a+","+b);
operated(a,b);
System.out.println(a+","+b);
}
static void operated(StringBuffer x, StringBuffer y)
{
x.append(y);
y=x;
System.out.println(x+","+y);
}
}
------解决思路----------------------
手机发不出大图,压缩不知道看得清楚不
------解决思路----------------------

方法main中
在栈中创建a,b 在堆中创建StringBuffer("A"),StringBuffer("B")对象,a,b分别指向这两个对象
执行System.out.println(a+","+b); A,B
执行方法operated(a,b);
在栈中创建x,y,分别指向两个对象
执行x.append(y),append方法返回的是原对象的引用,但对象的数据变为“AB”
y=x,将引用赋值给y
执行System.out.println(x+","+y);都打印AB
方法operated(a,b)结束x,y弹出
执行System.out.println(a+","+b); AB,B