Object类
equals()和hashCode()属于Object类,hashCode()返回int,equals()返回boolean值。
若只是单纯的比较基本类型或者引用类型可不重写hashCode(),但当需要存放至set或者map中时,如不重写hashCode()即使同一对象也会散列到不同的下标中去,因为他们的hashCode()值不相等。
在调用equals()方法之前调用hashCode(),可进行快速定位减少比较次数。注意,若两个对象hashCode()不相等,则即使对象是相等的那么也返回false。因为系统默认hashCode()是根据对象ID来获取的。