首頁 >Java >java教程 >什麼時候應該使用 Java 的 String `intern()` 方法?

什麼時候應該使用 Java 的 String `intern()` 方法?

Barbara Streisand
Barbara Streisand原創
2024-12-04 03:26:13153瀏覽

When Should You Use Java's String `intern()` Method?

字串文字和intern 方法

問題:

在Java 中,什麼情況下需要使用intern( )字串方法文字?

答案:

Java 自動實習字串文字,這表示它們的值儲存在常數池中並被多個字串物件引用。但是,當處理使用 new 運算子建立的字串時,intern() 方法非常有用。

說明:

字串文字(例如「Rakesh」)會自動產生實習過。這表示 new String("Rakesh") 傳回的字串參考將始終指向與文字「Rakesh」相同的物件。

但是,使用 new 建立的字串不會被保留。程式碼 String s4 = new String("Rakesh") 在記憶體中建立一個新對象,即使「Rakesh」的值已經存在於常數池中。為了強制這個新建立的字串被實習,我們可以使用intern() 方法,如String s5 = new String("Rakesh").intern().

因此, intern() 方法當我們想要手動確保多個字串物件引用常數池中的同一個物件時應該使用,即使它們是使用建立的新。

範例:

考慮以下程式碼:

String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
String s4 = new String("Rakesh");
String s5 = new String("Rakesh").intern();

if (s1 == s2) {
    System.out.println("s1 and s2 are same"); // 1.
}

if (s1 == s3) {
    System.out.println("s1 and s3 are same"); // 2.
}

if (s1 == s4) {
    System.out.println("s1 and s4 are same"); // 3.
}

if (s1 == s5) {
    System.out.println("s1 and s5 are same"); // 4.
}

輸出將為:

s1 and s2 are same
s1 and s3 are same
s1 and s5 are same

第1、22和4 行說明s1、s2、s3 和s5都引用常數池中的同一個物件。第 3 行表示 s4 是記憶體中的不同對象,儘管其值與 s1 相同。

以上是什麼時候應該使用 Java 的 String `intern()` 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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