考虑以下代码:
String s = "Dear"; String s1 = "My"+ s; String s2 = "MyDear"; String s3 = "My"+"Dear";
这里 s1 和 s3 是由字符串常量表达式创建的。
System.out.println(" s2 == s3 是 " + (s2 == s3)); //真的
结果是真的,因为 s2 和 s3 都指向同一个实习字符串对象,但是
System.out.println(" s1 == s2 是 " + (s1 == s2)); //错误的
出来胡说八道。为什么?