天天看點

不可變String

在c++中,一個引用傳遞會改變實參的值。然而在java中,卻是和c++不同的。

1 public static void main(String[] args) {  
2     String x = new String("ab");  
3     change(x);  
4     System.out.println(x);  
5 }  
6    
7 public static void change(String x) {  
8     x = "cd";  
9 }        

這個java代碼的輸出值是“ab”而不是“cd”。

String對象是不可變的。String類中每一個看起來會修改String值的方法,實際上都是建立了一個全新的String對象,已包含修改後的字元串内容。而最初的String對象則絲

毫未動。