intern () ведет себя иначе в Java 6 и 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");
        }
    }
}

Этот код производит разные результаты в Java 6 и Java 7. В Java 6 условие s1 == s2 возвращает false , а в Java 7 s1 == s2 возвращает true . Почему?

Почему эта программа производит разный вывод в Java 6 и Java 7?

54
задан 18 revs, 9 users 37% 2 September 2015 в 18:46
поделиться