HashMap了解吗?
HashCode() HashMap 底层实现 HashMap 的长度为什么默认初始长度是16,并且每次resize()的时候,长度必须是2的幂次方? HashMap 死链问题 Java 8 与 Java 7对比 为什么要使用红黑树? 说说hashmap如何处理碰撞的,或者说说它的扩容? 一,简介 (1)桶(capacity)容量,即数组长度:DEFAULT_INITIAL_CAPACITY=1<<4;默认值为16,即在不提供有参构造的时候,声明的hashmap的桶容量; (2)MAXIMUM_CAPACITY = 1 << 30; 极限容量,表示hashmap能承受的最大桶容量为2的30次方,超过这个容量将不再扩容,让hash碰撞起来吧! (3)static final float DEFAULT_LOAD_FACTOR = 0.75f; 负载因子(loadfactor,默认0.75),负载因子有个奇特的效果,表示当当前容量大于(size/)时,将进行hashmap的扩容,扩容一般为扩容为原来的两倍。 (4)int threshold;阈值(yu) 阈值算法为capacity*loadfactory,大致当map中entry数量大于此阈值时进行扩容(1.8) (5)transient Entry<K,V>[] table = (Entry<K,V>[])