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