Object若不重写hashCode的话,hashCode如何被计算出来的
如果不重写,是用底层实现的,返回的是当前对象的内存地址,Object的hashCode方法是本地方法,是用C语言或C++实现的,该方法直接返回对象的内存地址。
如果一个类不重写它的equals方法,那么它的equals方法是如何比较的?
比较的是地址,相当于==。
Java中为什么重写Equals方法要重写HashCode方法
是为了提高效率,采用重写hashCode方法,先进行hashcode比较,如果不同,那么就没必要再进行equals的比较,这样可以减少equals比较的次数,当对较数量很大的时候效率提高会比较明显,比如在集合中使用。