0

考虑以下代码:

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)); //错误的

出来胡说八道。为什么?

4

1 回答 1

4

s1 不是由常量表达式创建的。s3 是。

于 2012-06-23T07:10:09.880 回答