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)之后,如下图解释