「Java面试」这道面试题HashMap和HashTable有什么区别的满分回答

“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

标签:目的   数组   线程   满分   安全性   长度   角度   性能   文档   基础   文章

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top