class A{
public static void b(String a){
a += "bbb";
}
public static void main(String[] args){
String a = "a";
A.b(a);
System.out.println(a);
}
}
打印出来的是a.
因为
java Stirng对象当然传递的是引用。但是String对象有其特殊性。String对象用“+”操作的时候,会把对象引用指向一个新的地址,也就是 “abbb”的地址,这样在b方法里的String a引用就变掉了,而在main方法里a引用仍旧在原来的“a”的地址。
要注意的是,b方法里a的引用和main方法里a的引用是两个引用,初始都指向同一地址。