這東西記了又忘,忘了又記
equals本來實(shí)現(xiàn)就是用的==,但是string比較特殊,有一個(gè)常量池
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,因?yàn)槌A砍氐脑?
''
string的equals方法重寫了的,只要內(nèi)容相同就返回true
==則是返回地址,如果是new的則是不同的地址,就會(huì)返回false
2.基本類型的包裝類型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用變量,==是比較地址的,而equals是比較內(nèi)容的,沒有常量池這個(gè)東西
在對(duì)象相同的情況下內(nèi)容相同則可以返回true,其他情況返回false