首頁 >Java >java教程 >String intern() 方法在 Java 中的作用是什麼?

String intern() 方法在 Java 中的作用是什麼?

PHPz
PHPz轉載
2023-09-20 13:29:03951瀏覽

String是Java中儲存字元序列的類,它屬於java.lang包。一旦創建了 String 對象,就無法修改它們(不可變)。

儲存

所有 String 物件都儲存在堆區域中的單獨記憶體位置,稱為 String 常數池

每當定義字串值時,JVM都會在字串常數池中建立一個具有給定值的字串物件。因此,如果執行上述程序,則會在字串常數池中建立兩個字串值。

String intern() 方法在 Java 中的作用是什么?

intern() 方法

此方法從唯一字串值池傳回目前字串的值。每當您在特定 String 上呼叫此方法時,如果 String 常數池已包含與其相等的 String (根據 Object 類別的 equals 方法),則它將被傳回。如果不是,則將目前字串新增至字串常數池中,傳回對其的參考。

即如果您對兩個具有相同內容的字串呼叫此方法,則可以保證它們共享相同的記憶體。

此方法可以方便地減少出現多個重複值時所佔用的記憶體。

範例

下面我們將建立兩個內容相同的字串(使用 new 關鍵字),並使用「==」運算子對它們進行比較。儘管兩個物件具有相同的值,但由於它們不引用相同的物件(記憶體),因此結果將為 false。

public class InternExample {
   public static void main(String args[]) {
      String str1 = new String("Hello");
      str1 = str1.intern();
      String str2 = "Hello";
      str2 = str2.intern();
      System.out.println(str1.equals(str2));
   }
}

輸出

false

但是,如果您在比較兩個物件之前呼叫intern 方法,因為它確保兩個物件共享相同的記憶體(如果它們具有相同的內容),則結果將為true。

public class InternExample {
   public static void main(String args[]) {
      String str1 = new String("Hello");
      str1 = str1.intern();
      String str2 = new String("Hello");
      str2 = str2.intern();
      System.out.println(str1==str2);
   }
}

輸出

true

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

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除