class e
{ public static void main(StringBuffer[] args)
{
StringBuffer a=new StringBuffer("A");
StringBuffer b=new StringBuffer("B");
method(a,b);
System.out.println(a+","+b);
}
static void method(StringBuffer x,StringBuffer y)
{
x.append(y);
y=x;
}}
我感觉结果应该是AB,AB 可是答案是AB,B这里的y=x;有什么用

解决方案 »

  1.   

    你对变量的作用空间还不理解参考我在此篇文章中的解答
    http://community.csdn.net/Expert/topic/5532/5532201.xml?temp=3.124416E-03
      

  2.   

    static void method(StringBuffer x,StringBuffer y)
    {
    x.append(y);  //x 是a的引用,该操作修改了a的内容
    y=x;   // 该操作仅仅将y的引用从b变成x,并没有改变b的内容
    }
      

  3.   

    x.append(y);是修改内容.
    下一个是赋值