1. 程式人生 > >建立String的兩種方式有什麼不同

建立String的兩種方式有什麼不同

1.String a=new String("abc");
   String b=new String("abc");


當使用String a=new String("abc");時,雖然值是一樣的,但每次建立一個新的物件,每個物件的地址不同
2.String b="abc";
   String a="abc";


當使用String b="abc";時,不僅值是一樣的,他們的引用變數所指向的地址也是一樣的。因為java提供了緩衝池,建立時java會先到緩衝池查詢是否有這個值(物件),如果有,直接將引用變數指向該地址,如對沒有才建立一個值放在緩衝池中

。當改變其中一個時,會在緩衝池中建立一個新的值並將值的引用(a/b為物件的引用)指向這個值,所以另一個值不會改變。