我们知道,hashmap底层是通过数组和链表的形式来进行实现存储(JDK 1.8加入了红黑树,进一步加快我们的查找速率)。
当我们存储对象的时候,通过hashcode()方法计算出我们的hash值【为了避免hash冲突,这里还有很多优化算法: 例如:将计算出来的hash值与我们底层数组长度减一进行位运算】,将其存放到指定的hasa值位置上,如果此时若该位置没有其他元素,直接存储。(此时只用到了hashcode);有可能hash冲突,不同对象计算出来的hashcode是相同的,我们需要用到equals进行比较若相等就将我们的数据进行更新,若不相等就将以链表的形式进行存储,如果不相等就将以链表的形式存储。
所以看到这里我们一目了然了,我们的最基本数据类型是没有equals()方法的,所以只能用引用类型。