1. 程式人生 > >java 判斷2個物件是否相等

java 判斷2個物件是否相等

判斷2個物件是否相等,主要考察的是你對Object類的2個方法equals和hashcode以及“==”的理解。

先來說說equals 和 “==”的區別

1.首先,一定要記住,當沒有重寫Object的equals方法時,equals的作用和“==”相同都是用來判斷2個物件的地址是否相等。

2. 如果重寫了重寫Object的equals方法時,equals的作用就是用來判斷2個物件的值是否相等,而不是地址了。切記!

知道這個後,我們來說說比較2個物件是否相等流程(複寫了equals和hashcode方法為前提的,一般我們在業務場景中都複寫這二個方法):

     首先是獲取物件的hashcode值是否相等,如果hashcode相等再判斷equals值是否相等。所以說hashcode值相等,2個物件不一定相等,反之,當2個物件相等,那麼他們的hashcode值一定相等成立。

    那就更不要說equals相等,二個物件相等就更不成立了,也要滿足equals相等和hashcode相等才相等。