Java 中的字串是物件:為什麼沒有「new」來建立?
Java 中的字串是對象,但與其他物件不同,它們通常是在不使用「new」關鍵字的情況下建立的。這種做法提出了一個問題:為什麼創建字串不需要「new」。
不使用「new」的原因:字串實習
而不是創建一個新的每次使用字串文字時,字串物件都會執行一個稱為實習的過程。實習涉及將字串文字儲存在中央池(稱為字串池)中。當遇到字串文字時,會根據字串池進行檢查。如果相同的字串文字已存在,則傳回對現有字串的引用,而不是建立新物件。
範例:
考慮以下程式碼:
String str1 = "Hello"; String str2 = "Hello";
在此範例中,「str1」和「str2」都引用字串池中的同一個String 對象,儘管是單獨建立的。因此,'str1 == str2' 的計算結果為 true,表示它們在物理上是相等的。
Interning 的優點:
Interning 透過減少數量來優化效能建立的 String 物件的數量,特別是對於經常使用的字串。例如,在多次使用字串文字的循環中,僅建立一個 String 對象,而不是每次迭代都重新建立它,從而節省大量記憶體。
使用「new」建立字串
雖然建議的方法是實習,但仍可使用「new」建立字串。但是,需要注意的是,這可能會導致為相同字串值建立多個 String 對象,這可能會影響記憶體使用和效能。
結論:
Java 中字串建立中缺少「new」源自於字串駐留的使用。 Interning 透過減少不必要的物件創建和提高記憶體效率來提高效能,使其成為創建字串的首選方法。
以上是為什麼我們不在 Java 中使用「new」來建立字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!