class Test {
public static void main(String...args) {
String s1 = "Good";
s1 = s1 + "morning";
System.out.println(s1.intern());
String s2 = "Goodmorning";
if (s1 == s2) {
System.out.println("both are equal");
}
}
}
这段代码在Java 6和Java 7中产生不同的输出结果。在Java 6中,s1==s2
条件返回false
,而在Java 7中,s1==s2
返回true
。为什么?
s1 = s1.intern()
或者是if (s1.intern() == s2)
吗?仅仅调用intern()
不应该改变s1
。 - user85421