字串:沒有「New」關鍵字的物件
字串儘管是Java 中的對象,但可以在不使用new 關鍵字的情況會建立。若要了解原因,請考慮以下範例:
Object obj = new Object();
此程式碼使用 new 關鍵字建立 Object 類別的實例。然而,在建立字串時,我們使用不同的語法:
String str = "Hello World";
內部字串文字
這種差異的原因在於Java對字串文字的處理。字串文字(例如“Hello World”)被保留,這意味著它們儲存在中央字串池中。每次遇到字串文字時,Java 都會檢查池中是否存在現有實例。如果在池中找到該字串,Java 將傳回對該實例的引用,而不是建立新實例。
考慮以下程式碼:
String a = "abcd"; String b = "abcd"; System.out.println(a == b); // Output: True
因為 a 和 b 都引用相同的字串文字,它們在物理上是相等的(即,它們指向同一個物件)。
帶有「New」的自訂字串
雖然實習有利於提高效率,可以使用 new 建立自訂 String 實例。例如:
String a = new String("abcd"); String b = new String("abcd"); System.out.println(a == b); // Output: False
在本例中,a 和 b 是使用 new 建立的不同 String 物件。
Interning 的好處
Interning String文字提高了效能,因為它消除了創建相同字串的多個實例的需要。當在程式中多次使用字串時,這尤其有用。例如,在以下程式碼中:
for (int i = 0; i < 10; i++) { System.out.println("Next iteration"); }
字串「Next iteration」由於實踐僅實例化一次,即使它在循環中使用。如果沒有實習,每次循環迭代都需要一個新的 String 實例,這可能會浪費記憶體。
以上是為什麼Java中不用「New」關鍵字也能建立字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!