String永遠的問題

String a = "ab"+"c";
這時候生成的"abc"會放入StringPool(正解),
String a="ab";
String c=b+"c";
由於和字面量"c"進行+運算的是一個對象而不是字面量,這樣Java虛擬機就會在堆裏面生成一個新的對象並返回該對象引用,此時變量a和變量c指向了兩個不同的地址。
即使String a = new String("abc"),雖然這樣一來a和c都是指向堆的,但她們還是指向兩個不同的對象,因爲b+"c"會新生成一個對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章