首頁 >Java >java教程 >為什麼Java中不用「New」關鍵字也能建立字串?

為什麼Java中不用「New」關鍵字也能建立字串?

Susan Sarandon
Susan Sarandon原創
2024-11-13 13:12:021023瀏覽

Why Can Strings Be Created Without the 'New' Keyword in Java?

字串:沒有「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中文網其他相關文章!

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