當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java String intern()用法及代碼示例


Java String intern() 方法返回字符串對象的規範表示。

用法:

string.intern()

這裏,stringString 類的對象。

參數:

intern() 方法不接受任何參數。

返回:

  • 返回字符串的規範表示

什麽是 Java 字符串實習?

String interning 確保所有具有相同內容的字符串使用相同的內存。

假設,我們這兩個字符串:

String str1 = "xyz";
String str2 = "xyz";

由於str1str2 具有相同的內容,因此這兩個字符串將共享相同的內存。 Java 自動實習字符串文字。

但是,如果您使用 new 關鍵字創建字符串,這些字符串將不會共享相同的內存。例如,

class Main {
  public static void main(String[] args) {

    String str1 = new String("xyz");
    String str2 = new String("xyz");


    System.out.println(str1 == str2); // false

  }
}

從這個例子可以看出,str1str2 的內容相同。但是,它們並不相等,因為它們不共享相同的內存。

在這種情況下,您可以手動使用intern() 方法,以便為具有相同內容的字符串使用相同的內存。

示例:Java 字符串 intern()

class Main {
  public static void main(String[] args) {

    String str1 = new String("xyz");
    String str2 = new String("xyz");

    // str1 and str2 doesn't share the same memory pool
    System.out.println(str1 == str2); // false

    // using the intern() method
    // now both str1 and str2 share the same memory pool
    str1 = str1.intern();
    str2 = str2.intern();

    System.out.println(str1 == str2); // true
  }
}

如您所見,str1str2 的內容相同,但它們最初並不相等。

然後我們使用intern() 方法,以便str1str2 使用相同的內存池。在我們使用intern() , str1str2 之後是相等的。

相關用法


注:本文由純淨天空篩選整理自 Java String intern()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。