本帖最后由 王少岩 于 2012-8-9 15:42 编辑
String s="a";
String s1=s+"b";
String s2=s+"b";
System.out.println(s1.equals(s2));//true
System.out.println(s1==s2);//为什么结果是false。s1和s2的内容相同,字符串都存在与常量池中,既然它们的内容都相同,那么它们的指向的就应该是同一个值,所以它们所代表的地址值应该是同一个啊,但为什么会是false
final String s="a";
String s1=s+"b";
String s2=s+"b";
System.out.println(s1.equals(s2));//true
System.out.println(s1==s2);//true这又是为什么,多个final跟上面有了哪些区别? |