关于StringBuilder的一些问题,第一次发帖求支持,大家看看public class Test{ public static void main(Str
关于StringBuilder的一些问题,第一次发帖求支持,大家看看
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值一直就没变 [解决办法]