StringBuffer中的赋值运算符不起作用

时间:2013-02-09 09:28:54

标签: stringbuffer

public class Test
{
    static void operate(StringBuffer x, StringBuffer y)
    {
        x.append(y);
        y=x;
    }

    public static void main(String args[])
    {
        StringBuffer x=new StringBuffer("Sun");
        StringBuffer y=new StringBuffer("Java");

        operate(x,y);
        System.out.println(x+","+y);
    }
}

他的版画:Sun Java,Javap>

任何人都可以解释为什么它是这样打印而不是Sun Java,Sun Java?

1 个答案:

答案 0 :(得分:1)

您将对y中的StringBuffer的引用传递给您的操作函数。然后在操作中,您更改引用,但不更改对象。在调用操作之后,main函数仍然引用它最初分配的StringBuffer。