HashMap和ConcurrentHashMap常见面试题
1、HashMap
-
HashMap原理
-
HashMap 有用过吗?您能给我说说他的主要用途吗?
-
您能说说 HashMap 常用操作的底层实现原理吗?如存储 put(K key, V value),查找 get(Object
key),删除 remove(Object key),修改 replace(K key, V value)等操作 -
hash 冲突(或者叫 hash 碰撞)是什么?为什么会出现这种现象,如何解 决 hash 冲突?
-
HashMap 的容量为什么一定要是 2 的 n 次方?
-
您能说说 HashMap 和 HashTable 的区别吗?
-
HashMap中put()如何实现的
-
HashMap中get()如何实现的
-
为什么HashMap线程不安全
-
HashMap1.7和1.8有哪些区别
-
解决hash冲突的时候,为什么用红黑树
-
红黑树的效率高,为什么一开始不用红黑树存储
因为红黑树需要进行左旋,右旋操作, 而单链表不需要,
如果元素小于8个,查询成本高,新增成本低
如果元素大于8个,查询成本低,新增成本高 -
不用红黑树,用二叉查找树可以不
-
为什么阀值是8才转为红黑树
-
为什么退化为链表的阈值是6
-
hash冲突有哪些解决办法
-
HashMap在什么条件下扩容
-
HashMap中hash函数怎么实现的,还有哪些hash函数的实现方式
-
为什么不直接将hashcode作为哈希值去做取模,而是要先高16位异或低16位
-
为什么扩容是2的次幂
-
链表的查找的时间复杂度是多少
-
红黑树
ConcurrentHashMap
-
ConcurrentHashMap有哪些构造函数?
-
ConcurrentHashMap使用什么技术来保证线程安全?
-
ConcurrentHashMap的get方法是否要加锁,为什么?
-
ConcurrentHashMap迭代器是强一致性还是弱一致性?HashMap呢?
-
ConcurrentHashMap1.7和1.8的区别;