“HashMap和HashTable有什么区别?”
这是一道非常非常基础的面试题,但很多人却回答不好,没有逻辑性
今天这篇文章就给大家分享一下,高手和普通人遇到这个问题的区别。
经常有同学在后台跟我吐槽在求职过程中遇到的各种面试难题,
我发现大部分的问题之前的文章都有分析过,考虑到文章可能太过分散,不方便大家学习。
所以我系统整理了一份20万字的文档 有需要的Si信我发送“mic”领取
下面先来分享一下这个问题的考察目的
这个问题一般考察1~3年开发经验。
考察目的仍然是看求职者对Java基础的掌握程度。
集合是Java基础中非常重要的组件,除了根据不同数据结构选择合适的集合类。
还需要从安全性、性能、功能特性角度去了解集合的差异性以及底层工作原理。
如果达不到这个层次,在使用的时候遇到问题影响就比较大。
因此这也是人才筛选比较基础的一部分。
Hashtable和HashMap都是一个基于hash表实现的K-V结构的集合。
Hashtable是JDK1.0引入的一个线程安全的集合类,因为所有数据访问的方法都加了一个Synchronized同步锁。
Hashtable内部采用数组加链表来实现,链表用来解决hash冲突的问题。
HashMap是JDK1.2引入的一个线程不安全的集合类,HashMap内部也是采用了数组加链表实现,在JDK1.8版本里面做了优化,引入了红黑树。
当链表长度大于等于8并且数组长度大于64的时候,就会把链表转化为红黑树,提升数据查找性能。
最后,他们两个的key的散列算法不同,HashTable直接是使用key的hashcode对数组长度做取模。
而HashMap对key的hashcode做了二次散列,从而避免key的分布不均匀问题影响到查询性能。
对于这类问题,要能够获得面试官的认可,必须要做两个动作
1.平时要注意总结
2.回答的逻辑结构要清晰
临阵磨枪很难达到这种状态。
今天的文章就到这里了,喜欢我作品的同学记得转发、收藏、点赞!!!
最新的资料文档已整理,包含如下 (还在持续更新中!):
①100道最新大厂经典面试题解析资料文档!
②20万+字Java面试题解析和配套答案!
③从应届生到高级开发都适用的简历模板!
④从入门到精通的架构师学习路线图!
⑤还有各种技术流程图,路径图!
有需要的 Si 我 “Mic”拿!
更新时间:2024-09-04
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号