当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。