Java String intern()方法返回字符串对象的规范表示。
字符串intern()方法的语法为:
string.intern()
在这里,string是String该类的一个对象。
不带任何参数
返回字符串的规范表示
字符串嵌入确保所有具有相同内容的字符串使用相同的内存。
假设我们有两个字符串:
String str1 = "xyz"; String str2 = "xyz";
由于两者str1和str2具有相同的内容,因此这两个字符串将共享相同的内存。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 } }
从该示例可以看到,两者str1和str2具有相同的内容。但是,它们并不相等,因为它们不共享相同的内存。
在这种情况下,您可以手动使用intern()方法,以便对具有相同内容的字符串使用相同的内存。
class Main { public static void main(String[] args) { String str1 = new String("xyz"); String str2 = new String("xyz"); //str1和str2不共享相同的内存池 System.out.println(str1 == str2); // false //使用intern()方法 //现在,str1和str2都共享同一个内存池 str1 = str1.intern(); str2 = str2.intern(); System.out.println(str1 == str2); // true } }
正如你所看到的,str1和str2具有相同的内容,但它们不是一开始相等。
然后,我们使用intern()方法,以便str1和str2使用相同的内存池。 使用intern()之后,str1和str2相等。