public class Test{
public static void main(String[] args){
StringBuilder a = new StringBuilder("A");
StringBuilder b = new StringBuilder("B");
operate(a,b);
System.out.println(a+","+b);
}
static void operate(StringBuilder a,StringBuilder b){
a.append(b);
b=a;
}
}
输出结果为什么是AB,B
而不是AB,AB呢?
------解决方案-------------------- 这个涉及到引用传递的问题! 在方法中的 a 和 b 在栈中是虚拟出来的,跟主函数中的a b 不是一回事,
a.append(b) 改变了方法和主函数中的a的值. 但是 b = a 这是吧a的内存地址赋给了方法中的b
方法中的b 在出了方法后弹栈了,主函数中的b值一直就没变 ------解决方案--------------------