这与Java 7u6的改进有关,并已在Java 8中删除.

相关文件:

The alternative hash function improves the performance of these map

implementations when a large number of key hash collisions are

encountered.

For Java SE 7u6, this alternative hash function is implemented as

follows:

The alternative hash function is only applied to maps with a capacity

larger than a specified threshold size. By default, the threshold is

-1. This value disables the alternative hash function. To enable the

alternative hash function, set the jdk.map.althashing.threshold

system property to a different value. The recommended value is 512.

Setting this system property to 512 causes all maps with a capacity

larger than 512 entries to use the alternative hash function. You can

set this system property to 0, which causes all maps to use the

alternative hash function.

The alternative String hash function added in 7u6 has been removed

from JDK 8, along with the jdk.map.althashing.threshold system

property. Instead, hash bins containing a large number of colliding

keys improve performance by storing their entries in a balanced tree

instead of a linked list.

现在,回答你的问题:

How and when we have to use that class?

是什么让你认为你应该使用它?这是一个私人课程without any public docs,所以你不必关心它.这是Oracle HashMap的实现细节,您无法直接使用它.您可以间接使用它的唯一方法是通过jdk.map.althashing.threshold系统属性.

为什么Oracle的工程师会使用这样的持有者?因为类加载顺序. VM很难在彼此有很多依赖关系的情况下加载所有类,它可能会被卡住.因此,所有内部类的开发人员都要确保他们没有使用可能尚未加载的类的方法/属性/可能导致加载顺序问题.

这是一个这样的帮助程序,它只在加载所有其他类并且VM完全启动后初始化一个值.只有在第一次访问类时才会初始化holder中的值,并且使用sun.misc.VM.isBooted()调用屏蔽此访问.

java中的holder类_java – HashMap中Holder类的用途是什么?相关推荐

  1. java中Object类是最顶层的类_Java基础之Object类

    类Object是类层次结构的根类.每个类都直接或者间接地继承Object类.所有对象(包括数组)都实现这个类的方法.Object类中的构造方法只有一个,并且是无参构造方法,这说明每个类中默认的无参构造 ...

  2. java中的祖先类_Java程序公共祖先类-Object

    在Java中,所有的类都继承自Object类,它是所有的始祖,但是我们不需要显示的书写extends Object. equals方法 在JDK中,Object类的equals方法的实现如下: pub ...

  3. java 集合工具类_Java集合中Collections工具类总结

    Collections工具类 Collections 是一个操作 Collection(Set. List )和 Map 等集合的工具类 Collection和Collections的区别? Coll ...

  4. java 中counter什么意思_java容器中的几种计数方法浅谈

    本文讨论java集合容器中的几种元素数量获取的方式,命题很小,但是也足以让我们思考一些东西. 所谓计数:即是给出所在容器的元素总数的方式.一般能想到的就是两种方式:一是使用某个字段直接存储该计数值,二 ...

  5. java io使用哪些设计模式_JAVA IO中的设计模式

    在java语言 I/O库的设计中,使用了两个结构模式,即装饰模式和适配器模式. 在任何一种计算机语言中,输入/输出都是一个很重要的部分.与一般的计算机语言相比,java将输入/输出的功能和使用范畴做了 ...

  6. java 自定义函数的调用_Java/Android中的函数调用回调函数自定义回调函数

    在做Android自定义控件时遇到要自定义回调函数的问题,想想自己还暂时没有那么精深的技术,赶紧返过头回来再重新研究Java中回调函数的问题.然而不幸的是,网上太多杂乱的帖子和博客都是转来转去,而且都 ...

  7. java开发常用jar包_Java开发中常用jar包整理及使用

    本文整理了我自己在Java开发中常用的jar包以及常用的API记录. 一.common-lang3 简介:一个现在最为常用的jar包,封装了许多常用的工具包 依赖: org.apache.common ...

  8. java如何避免注释重复_Java 8中的可重复注释

    java如何避免注释重复 使用Java 8,您可以对声明或类型重复相同的注释. 例如,要注册一个类仅应由特定角色在运行时访问,则可以编写如下内容: @Role("admin") @ ...

  9. java中重载 参数顺序_Java方法中的参数太多,第4部分:重载

    java中重载 参数顺序 期望将过多的参数传递给Java方法的问题之一是,该方法的客户端很难确定它们是否以适当的顺序传递了适当的值. 在以前的文章中,我描述了如何使用自定义类型 , 参数对象和构建器来 ...

最新文章

  1. mft按钮设计_奥林巴斯M4/3系统新品激情再燃 以轻量化设计铸就微单极致体验
  2. Symantec Backup Exec 2012 Agent For Linux安装
  3. ActiveMQ持久化方式(转)
  4. c#4.0新特性之一: Dynamic Lookup (1)
  5. EM算法应用:k均值聚类(k-means)和高斯混合模型(GMM)
  6. Fedora 20 安装后的一些事情
  7. 2000服务器文件共享,Win2000 Server实现对共享文件的监控
  8. c语言switch结构计算利润,求助。。关于用switch编写简易计算器
  9. 前端—每天5道面试题(十)
  10. UITableView单元格选择颜色?
  11. 西门子PLC模拟电压采集
  12. python数据拟合方法_Python-最小二乘法曲线拟合
  13. word公式常用字体
  14. [jzoj 4226] 【五校联考3day2】A {简单题}
  15. html中鼠标点击图片变动,JS实现页面鼠标点击出现图片特效
  16. 十分nb且详细的Elasticsearch教程
  17. python正则表达式01
  18. 理解Play框架线程池
  19. 华为路由器登录方式设置
  20. 流利地回答出面试官提出的八股问题,面试官却突然说“背得不错”,该怎么回答?...

热门文章

  1. asp.net MVC 验证错误信息本地化
  2. Elasticsearch -- Java High Level REST Client (RestHighLevelClient) 使用说明文档
  3. 宿州学院省二计算机什么时候报名,宿州学院2017年9月全国计算机等级考试报名时间及报名网址公布...
  4. “熊猫血”产妇诞双胞胎困难 丈夫全城寻找血源
  5. eclipse无法创建tomcat7.0的server
  6. 【刷算法】按照之字形打印二叉树
  7. 2009年存储市场10大预测 厂商并购在所难免
  8. box head上身旋转问题
  9. JavaScript权威指南笔记
  10. OSChina 周六乱弹 ——世上无难事,只要肯放弃!