java面试都问知不知道hashmap的原理,那我就想问,知道原理有什么用?

1

Java中的HashMap可以说是平时开发中最常用的数据结构之一了,经常使用的集合类还有ArrayList、HashSet,基本上用好HashMap、ArrayList、HashSet这三大集合类,大多数的业务场景就满足了,掌握这三大集合类也是作为一名Java程序员的基础能力。

平时开发大多数的业务场景都是CRUD,且数据量都很小,所以基本上不会有什么问题。那么还需要知道其底层实现原理吗?还需要知道这些集合类的数据结构吗?

当然需要,这很重要!这里就拿HashMap来具体说一说了解它的设计思想多么的重要!

HashMap的数据结构

HashMap的底层数据结构简单来说就是数组+链表+红黑树,这个大家都知道,面试也是高频面试题,用一张图来形容就是:


2

我觉得底层他更多的是思想,理解思想有利于更快的学习其他知识,另一个对于排错也会有容易一些!

3

看源码的意义


看源码只是一种方法、手段,而不是目的。我也曾经给自己制定过“阅读xxx源码”的目标,现在看起来真的很蠢,一点不smart(specific、measurable、attainable、relevant、time-bound)。只有搞清楚了阅读代码的目标,才能有的放矢,抓住重点,高效达成任务。


看源码的意义总结起来包含但不限于以下几点:

第一:解决问题(BUG)

只要是代码,就会有bug,只是说bug的多与少、深与浅罢了。现在大家都喜欢发布、使用开源项目,不同的开源项目社区成熟度、代码质量又会有较大的差异,遇到bug就不足为奇了。

4

内卷,竞争的人多了,提高面试标准。

5

hashmap 现在确实是面试最热门的问题之一了。

我个人觉得理解底层有这么作用吧

1、首先对底层知识的了解和掌握,让我们平时在开发写代码时能写出较好的代码,其次可能会使出现bug率降低,再者即使出现bug,懂得底层知识的人可能在更短的时间或有效的去解决问题。

你想,老板肯定是更喜欢做事好且解决问题能力强的人嘛。

2、懂得更多底层知识,有助于我们平时在写代码时能借鉴别人好的思想。可以把别人好的思想运用到自己实际项目中,并灵活运用。

6

还是有些用的,虽然意义不大。比如大小分别为1000和100万的map,根据键取值哪个更快?

7

知道说明你看了,或者背诵了。

知其所以然是技术人员进步的基本,想要走得远就要比别人有优势。不然别人怎么信服你。

8

问这些问题还不如来个实景监测,就公司正在进行的项目,问个技术点,问个报表SQL,问个实体分析表设计,比这强多了。

9

哈希表 是程序中很重要的数据结构 看你能不能想起来这种秋裤结构的优势

10

hashmap原理主要考察你是否真的对java有过深入了解!是否有学习的精神!是否真的和你简历相符!最重要的是hashmap在大数据也有很多场景!你要转入大数据怎么能不学!还是那句话,垃圾和金子总要去甄别

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章