写在前面
在面试中,HashMap基本必问,只是问法各有不同而已。曾经我也和很多面试官聊过关于HashMap的话题,使用HashMap就能考察面试者的很多知识点。不幸的是,很大部分人都拜倒在HashMap的石榴裙底下
。
HashMap为什么如此受面试官青睐?
我觉得其中有4个原因:
-
HashMap在我们工作中使用频率相当高。
-
Java基础(可以通过此Java集合)
-
线程安全问题(可以通过这个问题引入多线程并发编程的相关问题)
-
大厂都在问,岂能不问?(不问的话,显得面试官没有水平
)
下面就是我给大家准备的HashMap连环炮,这个连环炮就相当于高考真题演练一样,可能没有完全一样的,只是问法不同罢了,这个主要得益于咱们汉语博大精深。
下面是HashMap的25连环炮:
1:说说HashMap 底层数据结构是怎样的?
2:谈一下HashMap的特性?
3:使用HashMap时,当两个对象的 hashCode 相同怎么办?
4:HashMap 的哈希函数怎么设计的吗?
5:HashMap遍历方法有几种?
6:为什么采用 hashcode 的高 16 位和低 16 位异或能降低 hash 碰撞?hash 函数能不能直接用 key 的 hashcode?
7:解决hash冲突的有几种方法?
8:为什么要用异或运算符?
9.:HashMap 的 table 的容量如何确定?
10:请解释一下HashMap的参数loadFactor,它的作用是什么
11:说说HashMap中put方法的过程
12:当链表长度 >= 8时,为什么要将链表转换成红黑树?
13:new HashMap(18);此时HashMap初始容量为多少?
14:说说resize扩容的过程
15:说说hashMap中get是如何实现的?
16:拉链法导致的链表过深问题为什么不用二叉查找树代替,而选择红黑树?为什么不一直使用红黑树?
17:说说你对红黑树的了解
18:JDK8中对HashMap做了哪些改变?
19:HashMap 中的 key 我们可以使用任何类作为 key 吗?
20:HashMap 的长度为什么是 2 的 N 次方呢?
21:HashMap,LinkedHashMap,TreeMap 有什么区别?
22:说说什么是 fail-fast?
23:HashMap 和 HashTable 有什么区别?
24:HashMap 是线程安全的吗?
25:如何规避 HashMap 的线程不安全?
26:HashMap 和 ConcurrentHashMap 的区别?
27:为什么 ConcurrentHashMap 比 HashTable 效率要高?
28:说说 ConcurrentHashMap中 锁机制
29:在 JDK 1.8 中,ConcurrentHashMap 为什么要使用内置锁 synchronized 来代替重入锁 ReentrantLock?
30:能对ConcurrentHashMap 做个简单介绍吗?
31:熟悉ConcurrentHashMap 的并发度吗?
....
java集合知识总结
如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论,
咱们下期见!答案获取方式:已赞 已评 已关~
学习更多JAVA知识与技巧,关注与私信博主(03)