首頁 >Java >java教程 >何時以及為什麼應該在 Java 中使用 `new String(...)`?

何時以及為什麼應該在 Java 中使用 `new String(...)`?

Barbara Streisand
Barbara Streisand原創
2024-12-16 00:40:11637瀏覽

When and Why Should You Use `new String(...)` in Java?

Java 中「new String(...)」的使用

當遇到程式碼結構「new String(...) 」時)」在Java 中,理解它的目的和效果很重要。 World”;”)不同,此語法利用“new”運算符透過使用字串常數初始化來建立String 物件。 🎜>

雖然字串常數駐留在常量池中,但「new String(...)」的行為並不那麼簡單正如人們可能想像的那樣。對象,但它不一定會導致在堆上分配新記憶體。 )”強制內部字元數組的不同副本。然而,這種行為依賴於實現並且沒有記錄。例如,嘗試通過“small=new String(huge.substring(10,20))」來實現此目的可能會導致意外結果,因為可能會保留整個原始字元數組,從而消耗大量記憶體。

不同副本的解決方案

為了確保字元陣列的真正不同副本,需要使用「new String(huge.substring(10,20).toCharArray())。 「雖然這需要兩次記憶體複製(一次用於“toCharArray()”,一次用於String 建構子),但這是實現所需結果的與實作無關的方法。

假設文件的陷阱

值得注意的是,文件有時可能缺乏清晰度或準確性。 String(...)」的文件建議它建立「字串」的副本,這意味著支援字元陣列的副本。然而,正如Apache Harmony 實作所見,情況並非總是如此。

結論

理解「new String(...)」的細微差別Java對於避免潛在陷阱至關重要。 🎜>

以上是何時以及為什麼應該在 Java 中使用 `new String(...)`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn