Java 字串池:堆疊分配與堆疊儲存
考慮程式碼片段:
String first = "abc"; String second = new String("abc");
實例化一個使用new 關鍵字的new String 物件在堆上建立一個不同的String 物件。與其他基元不同,String 物件是不可變的,這表示它們在初始化後無法修改。
但是,Java 在堆中維護了一個 String 池,該池儲存有限數量的常用 String。當定義文字字串(用雙引號括起來)時,編譯器會檢查字串池中是否存在現有的匹配字串。如果找到,文字 String 將引用池中現有的 String,保證記憶體效率。
在本例中,由於「abc」是文字 String,因此它將被放入字串池中。
現在,讓我們考慮使用new String("abc") 建立的新String 物件:
因此,我們的程式碼結果為字串池中的一個字串(「abc」)和堆上的一個不同的字串 (用new建立的字串)字串(“abc”))。
以上是Java 字串池:堆疊或堆疊-字串物件駐留在哪裡?的詳細內容。更多資訊請關注PHP中文網其他相關文章!