<分区>
在 Java 中,
String s1 = new String("abc");
String s2 = new String("ab") + new String("cd");
是否会在字符串常量池中创建字符串“abc”和“abcd”?
<分区>
在 Java 中,
String s1 = new String("abc");
String s2 = new String("ab") + new String("cd");
是否会在字符串常量池中创建字符串“abc”和“abcd”?
最佳答案
s1
和 s2
都不会指向常量池中的字符串,因为它们是通过显式构造函数调用和连接的组合创建的。只有字符串文字“abc”、“ab”和“cd”会在常量池中。
您需要显式intern()
新实例。在这种情况下,s1 == "abc"
将变为 true。
关于Java字符串常量池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38051978/