我不明白這段代碼,爲什麼我的字符串c
在main
方法中沒有更改,但是在changeString
中更改。你能解釋我嗎?Java String是不可變的嗎?
class MainClass {
public static void main(String[] args) {
String c = "lalala";
changeString(c);
System.out.println("str in main = "+c);
}
public static void changeString(String str) {
str = str + "CHANGE!!!";
System.out.println("str in changeString = "+str);
}
}
結果:
str in changeString = lalalaCHANGE!!!
str in main = lalala
在Java中可能有一千個重複的問題。請查看本頁面右側相關部分的鏈接 –
此鏈接將向您解釋Java中字符串的概念[查看本文] [1] [1]:http://javarevisited.blogspot.in/2010 /10/why-string-is-immutable-in-java.html – yantrakaar
我正在寫一個答案。如果你想了解變量是如何工作的,你應該閱讀http://python.net/~mwh/hacks/objectthink.html。儘管這篇文章是用Python編寫的,但在使用對值的引用的語言中這個概念是相同的。 * TL; DR - 變量名稱綁定到不包含對象的桶中* –