今天无聊又去看看源码,有了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中的散列算法有什么含义相关推荐

  1. 安全篇 - 散列算法

    简介 散列(英语:Hashing)是电脑科学中一种对数据的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结 ...

  2. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)...

    2019独角兽企业重金招聘Python工程师标准>>> 数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊-- ...

  3. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)

    数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们--帕蒂.道格.苏珊--每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4 ...

  4. 散列算法 SHA-1,SHA-2和SHA-256之间的区别

    随着SSL证书的普及,以"SHA"开头的算法的知名度也越多越高,但并不是很多人能够完全能分清"SHA"所有的算法,本文将会围绕"SHA"展开 ...

  5. 【计算机网络】网络安全 : 报文鉴别 ( 密码散列函数 | 报文摘要算法 MD5 | 安全散列算法 SHA-1 | MAC 报文鉴别码 )

    文章目录 一.报文鉴别 二.鉴别分类 三.报文鉴别 四.密码散列函数 五.MD5 算法 六.SHA-1 安全散列算法 七.MAC 报文鉴别码 一.报文鉴别 计算机网络安全措施 : ① 针对被动攻击 ( ...

  6. shiro进行散列算法操作

    shiro最闪亮的四大特征:认证,权限,加密,会话管理 为了提高应用系统的安全性,这里主要关注shiro提供的密码服务模块: 1.加密工具类的熟悉 首先来个结构图,看看shiro提供了哪些加密工具类: ...

  7. SHA256安全散列算法

    SHA256是安全散列算法SHA(Secure Hash Algorithm)系列算法之一,其摘要长度为256bits,即32个字节,故称SHA256.SHA系列算法是美国国家安全局 (NSA) 设计 ...

  8. Shiro框架:Shiro简介、登陆认证入门程序、认证执行流程、使用自定义Realm进行登陆认证、Shiro的MD5散列算法

    一.Shiro介绍: 1.什么是shiro: (1)shiro是apache的一个开源框架,是一个权限管理的框架,实现用户认证.用户授权. (2)spring中有spring security,是一个 ...

  9. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)——Web网络系列学习笔记

    数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们--帕蒂.道格.苏珊--每人一把. 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果. 4 ...

最新文章

  1. P9 线性系统状态空间分析-《Matlab/Simulink与控制系统仿真》程序指令总结
  2. Pandas中兼并数组和字典功能的Series 2013-03-24 11:24:00 分类: Python/Ruby In [2]: # 这段代码用于并排显示多个Series对象 from it
  3. 学习笔记——Numpy基本操作(二)
  4. linux so文件支持系统,让linux支持xfs jfs reiserfs 文件系统
  5. Junit框架使用--JUnit常用断言及注解
  6. TDAE:Hallucinating Very Low-Resolution Unaligned and Noisy Face Images by T
  7. 2021年“泰迪杯”数据分析技能赛A题任务1:数据分析与预测
  8. Laravel 邮件
  9. 绿色奖学金申请答辩PPT模板
  10. 杨涛:正解“街区制、密路网”
  11. iOS从零开始,用Swift:iOS上的数据持久性和沙箱
  12. Alt键一直处于按下状态 解决办法
  13. matlab数据变成一列数据,matlab读取excel表格列数据-matlab导入excel后,怎么把数据提取成一列?...
  14. node ref char*_「 volute 」树莓派+Node.js造一个有灵魂的语音助手
  15. 钉钉开放平台-小程序开发实战(钉钉小程序客户端)
  16. HIVE 计算指定日期本周的第一天和最后一天
  17. ADB卸载OPPO浏览器
  18. 联合国农产品数据分析
  19. 说说视频号最近有趣的事
  20. 360随身WiFi捆绑360云盘

热门文章

  1. python中的四舍六入五平分
  2. VMWare中Ubuntu 20.04.3 LTS编译、安装FFmpeg
  3. 杂文 | 一些无用但有趣事情(持续更新中...)
  4. 微信小程序开发—有关日期选择的下拉框
  5. ARM+llinux系统移植3G拨号上网收发短信(一)【转】
  6. oracle root密码重置,Exadata存储节点root用户密码重置
  7. 游戏安全资讯精选 2018年第二期:游戏行业年度白皮书;手游外挂、直播答题安全风险解析,近30%外挂手游存在致命安全问题,八招应对短信验证码攻击...
  8. 我懵了,居然还有学校还在教 Java 的 Swing
  9. Android N 多窗口的应用——画中画
  10. 西航职院计算机工程学院,西航职院 | 计算机工程学院毕业流程攻略