字符串关于==与equals的比较

String S1=new String("abc");

String s2="abc";

String s3="abc";

String s4=new String ("abc");

s1==s2 ; false;

s2==s3; true;

s1==s4 ;false;

s1.equals(s2);true;

== 是比较两个字符串的地址是否相等,而直接声明的字符串(不是new出来的)是放在一个字符串常量池里面,相同的地址是一样的,所以S2=S3是true。

其它的new出来的字符串都是单独的一个对象,所以地址是不相等的。

但是equals相对于字符串是重写了的,所以比较的是内容。

posted on 2014-09-07 11:02  花少灬  阅读(148)  评论(0编辑  收藏  举报

导航