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相对于字符串是重写了的,所以比较的是内容。