值传参和引用传参问题
@Test
public void referTest(){
String a = "a";
String b = "b";
StringBuilder A = new StringBuilder("A");
StringBuilder B = new StringBuilder("B");
System.out.println("\n=========================值传参=================================");
System.out.printf("before change String a: %s --- String b: %s%n",a,b);
changeString(a,b);
System.out.printf("after change String a: %s --- String b: %s%n",a,b);
System.out.println("\n===========================引用传参===============================");
System.out.printf("before change StringBuilder A: %s --- StringBuilder B: %s%n",A.toString(),B.toString());
changeBuilder(A, B);
System.out.printf("after change StringBuilder A: %s --- StringBuilder B: %s%n",A.toString(),B.toString());
}
public void changeString(String a, String b){
a = a+b;
}
public void changeBuilder(StringBuilder sb1, StringBuilder sb2){
sb1.append(sb2.toString());
}
结果:
=========================值传参=================================
before change String a: a --- String b: b
after change String a: a --- String b: b
===========================引用传参===============================
before change StringBuilder A: A --- StringBuilder B: B
after change StringBuilder A: AB --- StringBuilder B: B