字符串常量池
是 JVM 为了提升性能和减少内存消耗针对字符串专⻔开辟的一块区域,主要目的是为了避免字符串
的重复创建
String.intern()
作用是将指定的字符串保存在字符串常量池中,即:
- 如果字符串常量池中保存了对应的字符串,就直接返回
- 如果字符串常量池中没有保存对应的字符串,那就在常量池中创建
代码示例
{
String s1 = "Java"; // 直接返回字符串常量池中字符串对象”Java“对应的引用
String s2 = s1.intern();
String s3 = new String("Java"); // 直接返回字符串常量池中字符串对象”Java“对应的引用
String s4 = s3.intern();
System.out.println(s3 == s4); // false
System.out.println(s1 == s4); // true
}