关于两个String对象是否 == 的终极强贴 zz
见
http://jimlife.wordpress.com/2007/08/10/java-constant-pool-string/
public static void main(String[] args) {String s1 = "jim";String s2 = "jim";System.out.println(s1 == s2); // true.}public static void main(String[] args) {String s1 = "jim";String s2 = new String("jim");System.out.println(s1 == s2); // false. System.out.println(s1.intern() == s2.intern()); // true}public static void main(String[] args) {String s1 = "jim";String s2 = "j" + "im"; String s3 = "j";String im = "im";s3 += im;System.out.println(s1 == s2); // true.System.out.println(s1 == s3); // false.}public static void main(String[] args) {final String s1 = "j";final String s2 = "im";String jim = "jim";System.out.println(s1 + s2 == jim); // returns true: Constant// expression.}public static void main(String[] args) {String s3 = "j";String s4 = "im";System.out.println(s3 + s4 == "jim"); // returns false: Not a constant// expression.}