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