关注
大概说一下HashMap的面试过程吧,以下用A代表面试官,B代表应聘者。 A:您应聘的是Java岗位是吧,使用过Java的集合框架吗? B:使用过,比如ArrayList、HashMap、HashSet……巴拉巴拉…… A:说说您对HashMap的理解? B:HashMap是常用的Java集合之一,是基于哈希表的Map接口的实现。设计目标是尽量实现哈希表O(1)级别的增删改查效果,默认容量是16,扩容因子……底层结构是……巴拉巴拉…… A:说到HashMap的底层结构,您知道Java7与Java8中的HashMap有何区别吗? B:知道,Java7的HashMap底层数据结构是数组+链表实现,而Java8是数组+链表+红黑树实现……巴拉巴拉…… A:为什么要加入红黑树呢? B:因为在某些极端情况下,会导致大量元素都存放在同一个桶(数组索引是链表的表头)的链表中,此时的HashMap 就相当于一个单链表,假设链表中的元素个数为n个,则其操作时间复杂度就变成了O(n),此时就完全失去了哈希表的优势。 A:HashMap与HashTable的有何区别知道吗? B:知道,HashMap与HashTable主要区别为不支持同步和允许null作为key和value…… A:说说HashMap线程不安全的场景? B:1、多线程同时put时可能会丢失值。2、多线程扩容时会出现环状结构,造成死循环……巴拉巴拉…… A:如何解决HashMap的线程不安全? B:使用 Collections 的 synchronizedMap() 对其进行包装,或是直接使用线程安全的ConcurrentHashMap……巴拉巴拉…… A:说说这两种方式的区别? B:使用synchronizedMap包装在同步时会锁住整张表,而ConcurrentHashMap会使用自身的同步机制,比如分段锁或是CAS…… A:说说您对ConcurrentHashMap的理解? B:ConcurrentHashMap 在 JDK1.7 时被加入,是 HashMap 线程安全的版本,其使用方式与 HashMap 一样,底层数据结构在Java7和Java8时都与HashMap相同,只是加入了线程安全的保障……巴拉巴拉…… A:说说Java7和Java8中的ConcurrentHashMap是如何保证线程安全的? B:Java7的ConcurrentHashMap使用的是分段锁机制,巴拉巴拉……,因为XXX原因,Java8抛弃了分段锁,改成使用CAS算法+synchronized关键字来保证线程安全,巴拉巴拉…… A:嗯,说说您对CAS算法的理解。 B:所谓CAS算法即Compare And Swap……巴拉巴拉…… 以上大致就是HashMap的面试过程,知识点非常多,若是时间充足的话,面试官会根据你的回答进行深入和延伸,答得够仔细的话,面试官对你的印象肯定会很好的,但若是有一环节答不上来的话,不知道就说不知道,面试官会跳过该问题往后问其他的,千万不要不懂装懂,或是卡住答得模棱两可的,这个很要命,还有在回答问题的时候,尽量把面试官往你自己会的方向引,充分体现自己的能力。
查看原帖
10 14
相关推荐
10-10 14:40
香港城市大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 十二月请对我好一点 #
8492次浏览 157人参与
# 父母对你找工作是助力还是阻力? #
3097次浏览 70人参与
# 为了去实习,我赌上了___ #
3010次浏览 41人参与
# 聊聊我眼中的AI #
485961次浏览 6733人参与
# 工作中出现了XX情况正常吗 #
9945次浏览 116人参与
# 哪一瞬间让你觉得“这班不如不上” #
2301次浏览 23人参与
# 一人推荐一个值得做的项目 #
3238次浏览 52人参与
# uu们,春招你还来吗? #
2249次浏览 25人参与
# 高薪高压 vs 低薪wlb,你怎么选? #
3876次浏览 42人参与
# 回顾今年你干过的最“勇”的一件事 #
4876次浏览 73人参与
# 工作前VS工作后,你的心态变化 #
4159次浏览 34人参与
# 秋招有哪些公司要求提前实习 #
91176次浏览 488人参与
# 公司福利里最没用的一项是啥 #
2647次浏览 56人参与
# 机械人的金三校招总结 #
38967次浏览 465人参与
# 如何用一句话描述你的职业 #
28048次浏览 181人参与
# 追觅科技求职进展汇总 #
28977次浏览 181人参与
# 职场上哪些事情令人讨厌 #
32459次浏览 143人参与
# 机械人的薪资开到多少,才适合去? #
150908次浏览 530人参与
# 你收到了团子的OC了吗 #
1469551次浏览 11805人参与
# 毕业季,给职场新人一些建议 #
162111次浏览 2367人参与
