Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java String intern() 使用方法及示例

Java String(字符串) 方法

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

字符串intern()方法的語法為:

string.intern()

在這里,string是String該類的一個對象。

intern()參數(shù)

  • 不帶任何參數(shù)

intern()返回值

  • 返回字符串的規(guī)范表示

什么是Java String Interning?

字符串嵌入確保所有具有相同內(nèi)容的字符串使用相同的內(nèi)存。

假設(shè)我們有兩個字符串:

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

由于兩者str1和str2具有相同的內(nèi)容,因此這兩個字符串將共享相同的內(nèi)存。Java自動插入字符串字面量。

但是,如果使用new關(guān)鍵字創(chuàng)建字符串,則這些字符串將不會共享相同的內(nèi)存。例如,

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

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

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

  }
}

從該示例可以看到,兩者str1和str2具有相同的內(nèi)容。但是,它們并不相等,因為它們不共享相同的內(nèi)存。

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

示例:Java String intern()

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

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

    //str1和str2不共享相同的內(nèi)存池
    System.out.println(str1 == str2); // false

    //使用intern()方法
    //現(xiàn)在,str1和str2都共享同一個內(nèi)存池
    str1 = str1.intern();
    str2 = str2.intern();

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

正如你所看到的,str1和str2具有相同的內(nèi)容,但它們不是一開始相等。

然后,我們使用intern()方法,以便str1和str2使用相同的內(nèi)存池。 使用intern()之后,str1和str2相等。

Java String(字符串) 方法

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清