ConcurrentHashMap中的散列算法有什么含义
今天无聊又去看看源码,有了2个思考。
1.为什么选择本身与高16位部分做运算
2.为什么选择异或算法
答:与右移16位后的本身做异或运算是为了让高16位也参与运算,使得结果更加的随机,不然基本大多数情况只有低位参与运算。而之所以选择异或运算,是因为,异或运算的结果更平均,例如1和0做异运算,(1和1,1和0,0和1,0和0)4种情况有3种结果是0,一种是1。或运算则1种结果为1,3种为0。而异或运算是2种结果为1,2种结果为0.更平均。 更加的随机+更加的平均。
总结:虽然没啥用,但是觉得很有意思
tips:
1.JDK1.8的hashmap在高并发下已经没有环形链表问题了别忘了。
2.ConcurrentHashMap的size()方法中引用的内部类CounterCell使用的@sun.misc.Contended注解是为了独占CPU的缓存行,避免伪共享影响性能。类似1.7的在类中填充变量达到64字节来实现一样的效果,但是考虑到JVM会对代码做优化,无用的代码可能会被删掉导致无效。所以1.8有了这样的优化。
ConcurrentHashMap中的散列算法有什么含义相关推荐
- 安全篇 - 散列算法
简介 散列(英语:Hashing)是电脑科学中一种对数据的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结 ...
- 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)...
2019独角兽企业重金招聘Python工程师标准>>> 数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊-- ...
- 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)
数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们--帕蒂.道格.苏珊--每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4 ...
- 散列算法 SHA-1,SHA-2和SHA-256之间的区别
随着SSL证书的普及,以"SHA"开头的算法的知名度也越多越高,但并不是很多人能够完全能分清"SHA"所有的算法,本文将会围绕"SHA"展开 ...
- 【计算机网络】网络安全 : 报文鉴别 ( 密码散列函数 | 报文摘要算法 MD5 | 安全散列算法 SHA-1 | MAC 报文鉴别码 )
文章目录 一.报文鉴别 二.鉴别分类 三.报文鉴别 四.密码散列函数 五.MD5 算法 六.SHA-1 安全散列算法 七.MAC 报文鉴别码 一.报文鉴别 计算机网络安全措施 : ① 针对被动攻击 ( ...
- shiro进行散列算法操作
shiro最闪亮的四大特征:认证,权限,加密,会话管理 为了提高应用系统的安全性,这里主要关注shiro提供的密码服务模块: 1.加密工具类的熟悉 首先来个结构图,看看shiro提供了哪些加密工具类: ...
- SHA256安全散列算法
SHA256是安全散列算法SHA(Secure Hash Algorithm)系列算法之一,其摘要长度为256bits,即32个字节,故称SHA256.SHA系列算法是美国国家安全局 (NSA) 设计 ...
- Shiro框架:Shiro简介、登陆认证入门程序、认证执行流程、使用自定义Realm进行登陆认证、Shiro的MD5散列算法
一.Shiro介绍: 1.什么是shiro: (1)shiro是apache的一个开源框架,是一个权限管理的框架,实现用户认证.用户授权. (2)spring中有spring security,是一个 ...
- 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)——Web网络系列学习笔记
数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们--帕蒂.道格.苏珊--每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4 ...
最新文章
- P9 线性系统状态空间分析-《Matlab/Simulink与控制系统仿真》程序指令总结
- Pandas中兼并数组和字典功能的Series 2013-03-24 11:24:00 分类: Python/Ruby In [2]: # 这段代码用于并排显示多个Series对象 from it
- 学习笔记——Numpy基本操作(二)
- linux so文件支持系统,让linux支持xfs jfs reiserfs 文件系统
- Junit框架使用--JUnit常用断言及注解
- TDAE:Hallucinating Very Low-Resolution Unaligned and Noisy Face Images by T
- 2021年“泰迪杯”数据分析技能赛A题任务1:数据分析与预测
- Laravel 邮件
- 绿色奖学金申请答辩PPT模板
- 杨涛:正解“街区制、密路网”
- iOS从零开始,用Swift:iOS上的数据持久性和沙箱
- Alt键一直处于按下状态 解决办法
- matlab数据变成一列数据,matlab读取excel表格列数据-matlab导入excel后,怎么把数据提取成一列?...
- node ref char*_「 volute 」树莓派+Node.js造一个有灵魂的语音助手
- 钉钉开放平台-小程序开发实战(钉钉小程序客户端)
- HIVE 计算指定日期本周的第一天和最后一天
- ADB卸载OPPO浏览器
- 联合国农产品数据分析
- 说说视频号最近有趣的事
- 360随身WiFi捆绑360云盘
热门文章
- python中的四舍六入五平分
- VMWare中Ubuntu 20.04.3 LTS编译、安装FFmpeg
- 杂文 | 一些无用但有趣事情(持续更新中...)
- 微信小程序开发—有关日期选择的下拉框
- ARM+llinux系统移植3G拨号上网收发短信(一)【转】
- oracle root密码重置,Exadata存储节点root用户密码重置
- 游戏安全资讯精选 2018年第二期:游戏行业年度白皮书;手游外挂、直播答题安全风险解析,近30%外挂手游存在致命安全问题,八招应对短信验证码攻击...
- 我懵了,居然还有学校还在教 Java 的 Swing
- Android N 多窗口的应用——画中画
- 西航职院计算机工程学院,西航职院 | 计算机工程学院毕业流程攻略