首頁 > Java > java教程 > 主體

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

PHPz
發布: 2023-09-20 13:29:03
轉載
920 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!