1. 程式人生 > >equals 和 == 的 理解

equals 和 == 的 理解

基本 可能 都是 引用 內存地址 bsp .com www. tps

剛開始對於equals和==我真的是一直搞不清,記住又忘,對於區別只是層面上的記憶,沒有實質性的記憶點。

今天恍然大悟,我是這樣理解的,equals和==其實都是一樣的作用,因為object中的方法的實質其實就是==

技術分享圖片

所以對於對象的比較結果都是一樣的

技術分享圖片

但是對於下面的比較又為什麽有不同的結果呢

技術分享圖片

原因就是我們一直所理解的==比較的是內存地址,equals比較的是內容,但是這就跟上面說object的equals方法與==一樣不同,這是因為引用包裝類型自己重寫了equals方法,使equals比較的內容,如下:

技術分享圖片技術分享圖片

說到這你可能還會有些疑惑,為什麽基本數據類型用==就可以比較內容,其實看似比較的是內容,實質上比較的還是地址,因為基本數據類型是存放在常量池中,如果它們的數值一樣,它們指向的都是同一個變量。

總結:

比較基本數據類型使用==,比較包裝引用類型使用equals,比較對象,重寫equals方法。

文章參考自:

https://www.cnblogs.com/Eason-S/p/5524837.html

equals 和 == 的 理解