Java 字串記憶體最佳化:理解「String s = new String("silly")」
有人對以下建議提出了擔憂避免編寫像“String s = new String("silly")”這樣的Java 程式碼。雖然此建議對於優化 String 物件的記憶體使用有效,但可能不適用於其他類別。
為什麼「CaseInsensitiveString cis = new CaseInsensitiveString("Polish")」可以接受?
物件「cis」是 CaseInsensitiveString 類別的實例。與 String 不同,CaseInsensitiveString 是一個使用者定義的類別,需要建構函數來建立物件。因此,需要使用語法“CaseInsensitiveString cis = new CaseInsensitiveString("Polish")”來用指定的字串值初始化物件。
如何讓 CaseInsensitiveString 的行為像 String 一樣進行文字初始化?
要像String 一樣啟用CaseInsensitiveString 的文字初始化,可以實現以下內容:
為什麼可以直接將文字傳給 String?
String是Java中的一個特殊類別。它有一個預先定義的內部字串池,其中重複的字串文字儲存為對相同物件的參考。這消除了對相同字串值使用多個 String 物件的需要,從而減少了記憶體消耗。
以上是為什麼「CaseInsensitiveString cis = new CaseInsensitiveString('Polish')」可以接受,而「String s = new String('silly')」則不鼓勵記憶體最佳化的詳細內容。更多資訊請關注PHP中文網其他相關文章!