1、首先了解一下HashCode是什么?
HashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 。
函数public int hashCode()返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。
如果根据equals(java.lang.Object)方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法,不一定生成不同的整数结果。但是由于HashMap对象是根据其Key的hashCode来获取对应的Value。所以在重写父类的equals方法时,也重写了hashcode方法,使相等的两个对象获取的HashCode也相等,这样当此对象做Map类中的Key时,两个equals为true的对象其获取的value都是同一个,比较符合实际。
2、HashMap和HashTable有什么区别?