public static void main(String[] args) {
StringBuffer a=new StringBuffer(“A”);
StringBuffer b=new StringBuffer(“B”);
op(a,b);
System.out.println(a+","+b);
}
private static void op(StringBuffer a, StringBuffer b) {
a.append(b);b=a;
}
输出结果:AB,B
public static void main(String[] args) {
StringBuffer a=new StringBuffer(“A”);
StringBuffer b=new StringBuffer(“B”);
op(a,b);
System.out.println(a+","+b);
}
private static void op(StringBuffer a, StringBuffer b) {
a.append(b);
b=a;
System.out.println(b);
}
输出结果:AB
AB,B
原因:
因为变量a是调用了append方法,所以他的作用域能传到main方法中,而赋值语句的结果只能在当前方法中使用,一旦出了方法,方法区的内存就会释放,而b的结果也被释放了