35_hashcode解释

35_hashcode解释


马士兵说: 

站在java虚拟机的角度,来看内存里的布局,    椭圆代表一个一个java对象,一个程序运行起来的时候,可能很多对象在内存里头分配,那么对于java虚拟机来说,他要运行的时候,它需要找到这些对象的地址,  这些对象的地址怎么找,怎么找到这些对象来回来去之间的互相有联系,怎么找它们,怎么排列组合它们,难道说你在你内存里挨着排从头搜到尾,可能吗?    每运行一句话,都要搜一遍,累死了,对吧?    所以这个时候,往往采取的措施就是说,它会用一张表,来记录着每一个对象在什么位置上。

而这张表一般用hash编码来记录,这个hansh编码呢,每一个对象都有自己独一无二hash编码,根据这个编码找到相关的对象,也就是说根据这个编码 独一无二的来确定的对象,并且可以非常快的确定这个对象,它所在的位置。 




拓展知识

简单这样理解,但是呢,java其实本身对于hash编码的实现,有点问题,它有可能两个对象内容不同, hash编码 居然可能一样的,它这个概率很高,网上专门有对这个评论的,关于hash编码,它有可能是一样的,  先这个样记着, 后面降到 集合,降到MAp在来回头看这个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值