底层是由数组加链表运算的,数组里放着的是entry,在put的时候会将key做哈希运算,最hash值进行位移运算算出下标,然后放在entry里,entry里有next,hash,kay,value,四个属性,next存放着的是下一个entry节点的引用,,如果在插入时候算出的下标是一样的话,就会这里采用的是头插法将新的entry放在头部,然后将原来的entry以链的形式放在下面,并且新的next里存放着下一个entry的引用,取的时候要判断hash值以及key如果不是它会接着判断他的引用里是否存放着写一个entry的引用,如果有,进行key和hash的判断,hashmap的默认长度是16,负载因子是0.75当超过的时候会扩大到原来的二倍1.8以后采用红黑树,当阈值达到8也就是链的长度达到8,并且数组长度达到64,就会采用红黑树,(红黑树也是二叉树)