对于java的参数传递到底是值传递还是引用传递,一直是一个很疑惑的概念,到现在为止还是不怎么清楚,不过对于StringBuffer 和String类的参数传递也是一知半解。现在就做一个简单的例子测试
public class testBuffer {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
String s1="A";
String s2="B";
operate(s1,s2);
System.out.println(a + " " + b);//1
System.out.println(s1 + " " + s2);//1
}
private static void operate(StringBuffer a, StringBuffer b) {
a.append(b);
b = a;//2
}
private static void operate(String a, String b) {
a=a+b;
b = a;//2
}
}
运行结果为:
AB B
A B
也就是说当参数为StringBuffer时,当两个参数为A B时,得到的结果为AB B
党参数为String,两个参数为A B时,得到的结果为A B。
我也不知道这个到底是什么原因,只能死记