定义类考题
- 什么是Hash?什么是HashMap?
- HashMap 的工作原理是什么
- HashMap HashTable的区别
- 为什么要用HashMap
源码类考题
- 什么是hash碰撞,怎么减少碰撞,
- hash是怎么实现的
- 为什么hashMap 选择用红黑树
- 重新调整 HashMap 大小存在什么问题吗
- hashmap的主要参数都有哪些?
- hashmap的数据结构是什么样子的?自己如何实现一个hashmap?
- 说说hashmap的存取过程?
- 说说hashmap如何处理碰撞的,或者说说它的扩容?
- 当两个对象的 hashCode 相同会发生什么?
扩展类考题
- 谈谈你对红黑树的理解
- 红黑树 二叉树什么关系
- 能解决hash碰撞吗,解决方案是什么
- HashTable是什么
- 可以使用 CocurrentHashMap 来代替 Hashtable 吗
- CocurrentHashMap1.7 1.8优化了什么
- 结合CocurrentHashMap谈谈 CAS
总结
其实HashMap 作为Java集合类中key-value结构的代表,对其的掌握很大程度能考察你的java基本功。
围绕以上问题,其实考察的是这几个方面。
- HashMap是什么,原理?
- HashMap源码是否熟悉
- 扩展方面,整个Collection体系你知道多少?HashTable,HashSet,CocurrentHashMap等,简单的比较以下就明了
- 内功,通过源码分析,往里挖,可能问问Hash算法,高并发原理等,展开扩展新的考点。
那么带着这些问题,我们来分析以下HashMap的原理,顺便看看能不能以上几个方面找到答案!
参考文章:
面试总结hashmap
HashMap常问面试题整理
HashMap?面试?我是谁?我在哪