public static void main(String [] args){
String s = "java"; //line 1
s.concat(" SE 6"); //line 2
s.toLowerCase(); //line 3
System.out.print(s); //line 4
}
這個問題的答案是「4」。我認爲這將是「3」。我的困惑是第3行,它再次創建「java」字符串,但不知道字符串常量池中已經存在「java」字符串,爲什麼再次創建它?創建多少個Java字符串?
字符串在Java中是不可變的,所以's.toLowerCase()'返回一個新的String對象。 – Ocracoke 2015-02-24 16:14:22
@Ocracoke - 沒有。他不會重新分配由'concat'返回的值,所以s將是「java」,然後是「java」,toLowerCase()'將返回相同的字符串「java」 – TheLostMind 2015-02-24 16:23:31
@TheLostMind啊,只是看着代碼對於'toLowerCase()'來說,當它發現什麼都不做時,就會看到'return this'這行。我的錯。 – Ocracoke 2015-02-24 16:37:09