理解Java中的hashCode和equals方法

 

1.equals方法,在JDK默認的狀況下比較的是對象的內存地址數據結構

        比較兩個對象,須要重寫equals方法,將除了比較對象,成員變量也作比較code

2.hashcode方法,默認狀況下返回的是一個惟一的整數,表明該實例的內存地址,注意這個數字 並非實際的內存地址,Java是沒辦法直接獲取內存地址的,必須得由C或者C++獲取,因此這個方法是用 native修飾的。在HashMap等結構中,保存key時,會根據hashcode決定存儲位置。對象

總結:內存

(1)若是兩個對象相等,那麼他們一定有相同的hashcodehash

(2)若是兩個對象的hashcode相等,他們卻不必定相等變量

(3)重寫equasl方法時,必定要記得重寫hashcode方法,尤爲用在hash類的數據結構中。方法

 

https://mp.weixin.qq.com/s/_wVLYxmMwJsYsLJOaOQ5Hwqq

相關文章
相關標籤/搜索