public class TestStringBuffer {
    public static void main(String[] args) {
        StringBuffer x = new StringBuffer("A");
        StringBuffer y = new StringBuffer("B");
        append(x, y);
        System.out.println(x + "," + y);
    }

    public static void append(StringBuffer a, StringBuffer b) {
        a.append(b);
        b = a;
    }
}

输出结果 为  AB,B

首先是参数传递,java的参数传递本身就是引用传递,也就是执行到append方法的时候,a,b其实就是x,y的引用,执行a.append(b)之后,如下图解释