当前位置: 代码迷 >> 综合 >> 111111111111111111
  详细解决方案

111111111111111111

热度:65   发布时间:2024-01-30 15:50:08.0

 

1、一直put  最多能put多少个?

无限个,堆内存有多少个,JVM的配置

 

2、JDK 1.8

线程安全

不可变,

 

3、index

1.7  key的hashCode    直接与

1.8  变化的是   不再是直接与  length   其实目标就是更随机一点

 

4、为什么要与length-1进行与运算

取余

百分号取余

&length - 1    10000  -  1 = 01111 

 

5、为什么length要是2的幂次方

 

6、

超过负载因子就会扩容

扩容时,达到最大值

 

 

7、

16 -> 扩容为32      1111   ->  11111   第五位如果是0,如果是1  在高位加1    要么不移位  要么就是原来的位置加原来的数组

不需要看是1,或者  

赋值

 

8、1.7(头插法  ) & 1.8(尾插法  )   resize过程  

查找区别不大

但是在resize的过程      中会有所区别

如果采用头插法,可能会链表成环

 

9、

1)头插法

2)红黑树

3)hash()方法有区别

 

10、为什么HashMap的初始容量是16?

不一定是要16,一定要是2的幂次方

感觉应该是经验方面,链表的长度为8

 

 

  相关解决方案