public static void main(String[] args) {
StringBuffer a = new StringBuffer("a");
StringBuffer b = new StringBuffer("b");
change(a,b);
System.out.println(a);
System.out.println(b);
}
static void change(StringBuffer a,StringBuffer b){
a.append(b);
b=a;
}
打印出来是
ab
b
什么a变了,但是b没有变
------解决思路----------------------
楼主需要理解下Java中方法栈的知识,方法栈中定义的变量为方法局部变量,各方法之间的局部变量都是相互独立的。方法之间的相互调用允许进行值传递(基本类型数据,引用地址值数据)。楼主的代码可以用下面的抽象图简单解释,如下图:
