当前位置: 代码迷 >> J2EE >> 画一个针对下部代码中的 a, b, x, y 四个变量在内存中变化的示意图
  详细解决方案

画一个针对下部代码中的 a, b, x, y 四个变量在内存中变化的示意图

热度:534   发布时间:2016-04-17 22:58:35.0
画一个针对下面代码中的 a, b, x, y 四个变量在内存中变化的示意图

 画一个针对下面代码中的 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
  相关解决方案