public static void main(String[] args) { /* String s1 = new String("abc"); String s2 = "abc"; String s3 = new String("abc"); String s4 = "abc"; System.out.println(s1 == s2); // false System.out.println(s1 == s3);// false System.out.println(s4 == s2); // true System.out.println(s2 == s1.intern()); // true */ String s5 = "aabb"; String s6 = "aa"; String s7 = "bb"; System.out.println(s5 == "aa" + "bb"); //true 两边都是字面值 + 后 判断常量池里面有没有拼成后的值, 有则返回 System.out.println(s5 == "aa" + s7); // false 如果有一个不是字面值 会在堆里面生成一个新的对象 }