Java教程

Java String intern()

Java String intern()

Java String intern() 方法返回字符串对象的规范表示。
字符串 intern()方法的语法是:
string.intern()
这里, stringString 类的对象。

intern() 参数

intern() 方法不带任何参数。

intern() 返回值

返回字符串的规范表示

什么是 Java 字符串实习?

字符串实习确保具有相同内容的所有字符串使用相同的内存。
假设,我们这两个字符串:
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 String 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是相等的。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4