【发布时间】:2016-06-27 10:46:30
【问题描述】:
在 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。
【讨论】: