主页 > imtoken冷钱包下载 > Java源码系列:HashMap底层存储原理详解-三.技术本质-原理流程

Java源码系列:HashMap底层存储原理详解-三.技术本质-原理流程

imtoken冷钱包下载 2023-04-19 06:05:30

目录

HashMap底层是用什么算法实现的?

那么在我们之前的文章中,我们讲到了HashMap相关的数据结构:数组和链表,

既然你已经知道了这几点,那我再来说说其他的,

我们现在有了这个数据结构。 然后说说算法。 为什么?

也就是说,我们已经说了数据结构+算法=程序,那么既然我们已经了解了,我们HashMap的数据结构,

那我想问一下,你知道HashMap底层是用什么算法实现的吗?

如果在面试的时候面试官问到这一点,你会怎么回答? 为了什么? 你听说过哈希算法吗!

哈希算法底层是如何实现的?

那么这个算法的底层是如何实现的呢?

同学来来来,我来给你罗列一下,哈希算法是一种什么样的算法?

相信很多同学都不知道hash算法的底层实现是什么?

对,这就是能体现你底层技术能力的东西,就你所知,是比较片面的。

哈希算法的定义

那我这里先给大家讲一下,哈希算法,它的一些定义,

定义完了再说说他的一些实现。

散列算法也叫散列算法,就是通过这种算法把任意长度的密钥变成一个固定的密钥。

然后用这个键访问,一个结构。

这个hash算法的目的是通过ah生成一个固定的key,然后快速定位到这个节点。

所以它的目的是为了加快搜索速度。

比特币挖矿教程详细图文详解_比特币原理详解_比特币原理详解

以哈希算法为例,如何快速定位下标?

在这里,让我举个例子。 比如我们要选择一个英文名字叫lies,那么我们就用hash算法来

比特币原理详解_比特币原理详解_比特币挖矿教程详细图文详解

然后我们就可以计算它的下标,设下标等于9,等于谎言。

好了,我们现在就到这里,重点琢磨,我们输入一个英文名字,

他如何快速定位到等于9的下标呢?

那么这就是我们要研究的,这个hash算法,到底是怎么实现的呢? 哈希码

这个哈希码有点意思,那么请问哈希码是怎么实现的呢?

你说HashMap中的哈希算法是底层通过哈希码实现的。 那请问哈希码的底层实现是什么?

哈希码底层是如何实现的?

哈希码是如何实现的呢?

MD5加密

接下来给大家讲一下哈希算法的实现有很多种,但是相信大家应该都知道一个MD5,

比如我们经常输入用户名和密码。 此密码在我们的数据库中加密。

我们登录的时候输入的是明文,但是我们存到数据库里,是经过MD5加密过的数据。

而这个MD5的底层其实就是一个哈希算法。

比特币技术

比如包括我们现在比较流行的一些技术,比如我们的比特币技术,比如我们的挖矿,

包括我们去矿场挖这个币,为什么这个币,只要你有私钥,

你不会被盗。 其实底层就是用这个hash算法。

也就是说,哈希算法有一个特点,就是幂等性。

那么什么是幂等性呢?

比如我从出生开始,就有一个身份证号,这个身份证号,不管我从出生到生命的尽头,

这个号码永远不会变,只要你输入我的号码就可以找到我,这就是幂等性。

OK,那么这就是hash算法,需要有这样一个特性,

所以如果我们有这个特性,MD5有这个特性,但是你们都知道,

除了MD5,我们学过的知识点还有哪个能做到这种幂等呢?

ascii码计算

ascii码实现了幂等性。 这样,你就会知道它的算法底层实现的是什么。 有一点大家应该都知道,

有了最简单的一个,我们用什么? 我们使用他的 ascii 码。

那么ascii码呢,我们都知道每个英文字母都有对应的ascii码。

比如存人名,我们先取人名,我反汇编,取出每个字母的ascii码,

那么这里有一个程序给大家看看,你看这里,我会取这个人的名字,然后在上面进行数组循环,计算出每一个ascii码比特币原理详解

比特币原理详解_比特币挖矿教程详细图文详解_比特币原理详解

那么我们可以发现这里每一个像我们这样的英文,比如l对应108; 我对应105; e对应101; s对应115比特币原理详解

这是这些字母的ascii码,然后,我加上这些ascii码,等于429

比特币挖矿教程详细图文详解_比特币原理详解_比特币原理详解

模数计算,确定下标

然后我用完429再取模。

现在我想问你一个问题。 我用这个429模拟模10,那么它的下标就相当于确定了9的位置。

比特币原理详解_比特币原理详解_比特币挖矿教程详细图文详解

那么,这里呢,拿模体解决什么问题呢?

接下来,下一篇:我们将介绍die body解决了哪些问题,hash碰撞等。