面試題:== 與 equals 的區別【簡單易懂系列】

前言:

剛過了2020年的元旦,先祝大家事事順利,所有美好的事情都如期而至,offer拿到手軟(請允許小編開個小玩笑,哈哈哈~)

 

小編對於== 與 equals 是這麼理解的

==:想到是否是基本數據類型

                              基本數據:比較值是否相等

                              不是基本類型:比較引用是否指向同一個對象

equals :想到是否被重寫

                           被重寫如String,Integer,Long類都被重寫過:比較值相等

                           沒有被重寫Object:比較引用是否指向同一個對象(源碼是==,Object因爲不是基本數據類型so比較的是同一對象)

對於內存的存放可以參考小編的這篇文章:

https://blog.csdn.net/weixin_39382337/article/details/79427181

實例一:

對於實例一來說:

String不是基本數據類型 so:==是比較是否指代同一對象

1:str1==str2  str1是字符串常量,str2會先在緩存池中找是否有此字符串,so true

2:str1==str3  str1是字符串常量, str3是new對象存在堆中,不是同一對象 so false

3:str3==str4  str3是new對象存在堆中, str4也是new對象存在堆中,不是同一對象 so false

String是重寫過的equals so: equals是比較值相等

所以後三個全是true

1:Object類沒有重寫

2.String類被重寫

小編最近有些迷茫,所以不斷總結自己學過的東西,學習新知識,我們一起加油。寫的不足之處或者需要完善改進的地方也喜歡您能留言評論,謝謝您的到來,留下一些足跡。

之後小編會創建交流羣,以及公衆號,和網站互相交流,共同進步。

希望未來的你看到現在的自己,是滿感欣慰的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章