HashMap和ConcurrentHashMap常见面试题
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的区别;
