java中比較兩個對象是否屬於同一個對象

java中相同對象有兩個:1、引用地址符都相同的對象屬於同一個對象

                                       2、所指對象的內容完全一致屬於同一個對象

比較兩個自定義對象是否屬於同一個對象時,我們要重寫自定義對象中的equals()方法,否則,當使用equals()比較時,會自動去調用Object類中的equals()方法,而Object類中的equals()方法實則是比較兩個對象的引用地址符是否相當,而不會去比較內容是否相等,這樣兩個不同的的自定義的對象比較時,永遠返回的是false.

Object類中的equals()方法:

 所以就算兩個對象的內容完全一樣,地址符還是不一樣,返回的總是false:

 自定義對象重寫equals()方法後,我們再來比較這兩個對象是否相等:

重寫自定義對象equals()方法:

以上返回false的代碼再重新運行一下,結果爲true:

 

總結: 在比較兩個自定義對象是否是同一個對象時,一定要重寫自定義對象中的equals()方法。