方法传值
public class TestString {
public static void main(String[] args) {
String a = new String("A");
String b = new String("B");
operate(a,b);
System.out.println("main-A:"+a);
System.out.println("main-B:"+b);
}
private static void operate(String a, String b){
a = a.concat(b);
b=a;
System.out.println("operate()-A:"+a);
System.out.println("operate()-B:"+b);
}
}
结果
operate()-A:AB
operate()-B:AB
main-A:A
main-B:B
===============================================================================
-------------------------------------------------------------------------------
===============================================================================
public class TestStringBufer {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println("main-A:"+a);
System.out.println("main-B:"+b);
}
private static void operate(StringBuffer a, StringBuffer b){
a = a.append(b);
b=a;
System.out.println("operate()-A:"+a);
System.out.println("operate()-B:"+b);
}
}
结果:
operate()-A:AB
operate()-B:AB
main-A:AB
main-B:B
----------------------------------------------------------------------------------------------------
为什么在oprate()方法里所得到的b的值是AB,而main()方法里b始终都是B呢?
还有就是为什么用String和StringBuffer在最后得到的a的值不一样呢?