StringBuffer的中的append问题

public class Test2 {
public static void main(String[] args) {

    StringBuffer a = new StringBuffer("A");
    StringBuffer b = new StringBuffer("B");
    menthod(a, b);
    System.out.println(a + "," + b);

}

static void menthod(StringBuffer x, StringBuffer y) {
    x.append(y);
    y = x;
}

}

为什么输出结果是AB,B啊?

图片说明

public class QTest_2 {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
StringBuffer b1 =menthod(a, b);//这样应该明白了吧

System.out.println(a + "," + b1);

}

static StringBuffer menthod(StringBuffer x, StringBuffer y) {
y=x.append(y);
return y;
}
}

你这个写的,只是把x.append(y)赋给了形参y,并没有改变实参呀。也就是说,你是写了 y=x,但并没有返回任何值,而第一句x.append(y),确实改变了这个值,但第二个并没有返回任何有效信息

String是不能够修改的,不能通过赋值来改变原先的内容

menthod(a, b)在这一步的是,已经把B添加到A上了,所以这个时候a是AB,b是B。