字符串 intern()
方法的语法为:
string.intern()
在这里, 字符串是String
类的对象。
intern()参数
intern()
方法不接受任何参数。
intern()返回值
- 返回字符串的规范表示
什么是Java String Interning?
字符串实习确保所有具有相同内容的字符串使用相同的内存。
假设,我们这两个字符串:
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()
方法,以便将相同的内存用于内容相同的字符串 。
示例: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
}
}
如您所见, str1和str2的内容相同,但是最初它们并不相等。
然后,我们使用intern()
方法,以便str1和str2使用相同的内存池。使用intern()
, str1和str2相等。