Java.lang.String 类

java.lang.String.intern() 方法返回字符串对象的规范表示形式。字符串池最初是空的,由字符串类私有维护。当调用 intern 方法时,如果池中已包含与 equals(Object) 方法确定的字符串对象相等的字符串,则返回池中的字符串。否则,将此字符串对象添加到池中,并返回对此字符串对象的引用。

语法

public String intern() 

参数

无参数必需。

返回值

返回与给定字符串具有相同内容的字符串,但保证来自唯一字符串池。

异常

无。

示例:

在下面的示例中,intern() 方法返回规范表示对于字符串对象。

import java.lang.*;

public class MyClass {
  public static void main(String[] args) {
    String str1 = new String("Hello");
    String str2 = "Hello";
    String str3 = str1.intern();

    //返回 false 作为引用变量
    //指向不同的实例
    System.out.println(str1 == str2); 

    //返回true作为参考变量
    //指向同一个实例
    System.out.println(str2 == str3); 
  }
} 

上述代码的输出将是:

false
true 

示例:

让我们再考虑一个示例来理解intern() 方法。

import java.lang.*;

public class MyClass {
  public static void main(String[] args) {
    String str1 = "Hello";
    String str2 = str1.intern();
    String str3 = new String("Hello");
    String str4 = str3.intern();

    System.out.println(str1 == str2); //true
    System.out.println(str1 == str3); //假
    System.out.println(str1 == str4); //真
  
    System.out.println();

    System.out.println(str2 == str3); //假
    System.out.println(str2 == str4); //真
    System.out.println(str3 == str4); //假
  }
} 

上述代码的输出将是:

true
false
true

false
true
false