String s1 = "Sk";
s1.concat(" Y");
System.out.println("s1 refers to "+s1);
上述代碼生成輸出「Sk」而不是「Sk Y」。我希望我能夠解釋清楚。爲什麼?'concat'爲什麼不改變String?
String s1 = "Sk";
s1.concat(" Y");
System.out.println("s1 refers to "+s1);
上述代碼生成輸出「Sk」而不是「Sk Y」。我希望我能夠解釋清楚。爲什麼?'concat'爲什麼不改變String?
s1.concat(" Y");
不會改變s1
(它不能,因爲字符串是不可變的)。
它返回一個新字符串:
String s2 = s1.concat(" Y");
System.out.println("s2 refers to "+s2);
你能解釋更多細節immutable嗎或指定一個鏈接? –
@Shashwat沒有太多解釋。不可變的對象意味着你不能在創建它之後改變它的狀態。當你寫'String s1 =「Sk」;'時,'s1'指向一個不可變的對象,所以你在's1'上調用的任何方法都不會改變那個String的內容。另一方面,StringBuilder是一個可變對象。調用StringBuilder對象的'append'方法會改變該對象的內容。 – Eran
http://stackoverflow.com/questions/279507/what-is-meant-by-immutable –
CONCAT不會改變字符串,Java字符串是不可變的。嘗試s1 = s1.concat(「Y」)。 – pete23