【发布时间】:2020-12-21 10:36:24
【问题描述】:
class Demo
{
public static void main(String[] args)
{
String s1 = new String("ABC");
String s2 = s1.concat("ABC");
String s3 = s2.intern();
System.out.println(s2 == s3); //true
String s4 = "ABCABC";
System.out.println(s3 == s4); //true
}
}
字符串 s2 = s1.concat("ABC");将在堆区域创建一个新的字符串对象“ABCABC”。 字符串 s3 = s2.intern();应该在 String 常量池上创建一个新的 String 对象。
由于这是两个不同的对象,它们的引用不应该相等。但似乎我错过了与实习生()相关的重要内容。
【问题讨论】:
标签: java string constants pool