这东西记了又忘,忘了又记
equals本来实现就是用的==,但是string比较特殊,有一个常量池
1.string类型
''
String s1 = new String("abc");
String s2 = new String("abc");
String s3 = "abc", s4 ="abc" ;
System.out.println(s1.equals(s2));//true
System.out.println(s3.equals(s4));//true
System.out.println(s1.equals(s3));//true
System.out.println(s1==s2);//false
System.out.println(s3==s4);//true,因为常量池的原因
''
string的equals方法重写了的,只要内容相同就返回true
==则是返回地址,如果是new的则是不同的地址,就会返回false
2.基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的,没有常量池这个东西
在对象相同的情况下内容相同则可以返回true,其他情况返回false