Java 字串中的字串文字和新關鍵字
在Java 中,String 類別是用來表示字元序列的基本資料類型。但是,使用 new 關鍵字建立新的 String 物件和直接將文字字串指派給變數之間存在細微的差異。
使用new 關鍵字
程式碼片段String s = new String("silly");建立String 類別的新實例,並使用文字「silly」作為參數。這個操作會分配額外的內存,並在堆上建立一個新物件。
直接賦值一個字面值
另一方面,賦值String s = "不再傻了」;直接將字面值「不再愚蠢」賦給變量s。 Java自動建立一個匿名String物件並將其儲存在變數中,而不需要使用new關鍵字。這種優化避免了不必要的記憶體分配和物件創建。
但是,對於不擴充 String 類別的 CaseInsensitiveString 類,不直接支援直接賦值。為此,我們有兩個選項:
選項1:擴展String 類別
我們可以擴展String 類別以建立一個繼承其行為的CaseInsensitiveString 類,並允許直接賦值文字。這是透過重寫 toString() 和 equals() 方法來提供不區分大小寫的比較來完成的。
選項 2:自訂建構子重載
另一種方法是重載CaseInsensitiveString 的建構子接受文字參數。這可以透過提供一個接受 String 參數並自動初始化 s 字段的建構函數來實現。
以上是什麼時候應該對 Java 字串使用'new”關鍵字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!