intern() behaving differently in Java 6 and Java 7
问题 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"); } } } This code produces different outputs in Java 6 and Java 7. In Java 6 the s1==s2 condition returns false and in Java 7 the s1==s2 returns true . Why? Why does this program produces different output in Java 6 and Java 7? 回答1: It seems that JDK7 process intern in a different way as