對象相等和對象相同不是一個概念。
判斷兩個對象object1和object2相等用equals()方法,若該方法返回true,則表明這兩個對象相等。但是當在比較大的集合中找出相等的對象用equals()方法比較消耗性能。
所以:
1、如果object1==object2,則說明這兩個變量引用的是同一個對象,那么就不需要進行進一步比較。
2、如果object1.hashCode()!=object2.hashCode(),則這兩個對象必定不相等,那么就不需要進行進一步比較。
3、如果object1.hashCode()==object2.hashCode(),則需要進行object1.equals(object2)判斷。返回true則相等,返回false則不等。