热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于Jdk8中的ConcurrentHashMap所对应的API

询问下各位,今天本来想看下并发的源码,先Research了下,说Java8里面对于并发有了很大的变动,于是下载了jdk-8u20,并下载了对应的api文档(绝对是官方的),名为jdk-8u20-do
 询问下各位,今天本来想看下并发的源码,先Research了下,说Java8里面对于并发有了很大的变动,于是下载了jdk-8u20,并下载了对应的api文档(绝对是官方的),名为jdk-8u20-docs-all文件夹。最初定位到ConcurrentHashMap这个类,发现里面很多内部类,如static class Segment和static class Traverser等很多内部类和final的内部类都没有在api里面体现,弱弱的问下,这个是不是我找的有问题,是不是应该体现在ConcurrentHashMap这个类的Nested Classes这里面?

但是里面只列了下面这一个内部类:

请看过源码的朋友帮回下,谢谢 

17 个解决方案

#1


JDK8   我还没有使用过,我一直使用jdk1.6

#2


ConcurrentHashMap这个类好像jdk1.5后都有吧?不知道楼主具体想找啥?
给个链接,参考下
http://www.infoq.com/cn/news/2014/04/java-se2-tool-improve

#3


引用 1 楼 xmt1139057136 的回复:
JDK8   我还没有使用过,我一直使用jdk1.6

我刚刚切换到了1.6,但是对应的1.6的api上面也没有内部类的说明,请问这个是怎么回事,api中不关注这个么?

#4


引用 2 楼 shixitong 的回复:
ConcurrentHashMap这个类好像jdk1.5后都有吧?不知道楼主具体想找啥?
给个链接,参考下
http://www.infoq.com/cn/news/2014/04/java-se2-tool-improve

是的,1.5之后就有了,但是后面的每个jdk版本都会有关于这个类优化的改动,我想分析下里面的源码,但是里面的
static final class Segment extends ReentrantLock implements Serializable {................}
和static final class HashEntry {....................}这些都应该属于内部类的,但是为何没有呈现在api里面呢,1.6的api我刚看了,
每个api里面都有Nested Class Summary这个,内部类的说明,但是这些在api里面都没有说明,不知道这个是为什么

#5


引用 2 楼 shixitong 的回复:
ConcurrentHashMap这个类好像jdk1.5后都有吧?不知道楼主具体想找啥?
给个链接,参考下
http://www.infoq.com/cn/news/2014/04/java-se2-tool-improve

你给的这个链接我看过,谢谢

#6


引用 4 楼 smh821025 的回复:
Quote: 引用 2 楼 shixitong 的回复:

ConcurrentHashMap这个类好像jdk1.5后都有吧?不知道楼主具体想找啥?
给个链接,参考下
http://www.infoq.com/cn/news/2014/04/java-se2-tool-improve

是的,1.5之后就有了,但是后面的每个jdk版本都会有关于这个类优化的改动,我想分析下里面的源码,但是里面的
static final class Segment extends ReentrantLock implements Serializable {................}
和static final class HashEntry {....................}这些都应该属于内部类的,但是为何没有呈现在api里面呢,1.6的api我刚看了,
每个api里面都有Nested Class Summary这个,内部类的说明,但是这些在api里面都没有说明,不知道这个是为什么

这个我也不清楚,这边有1.6的源码,你要研究这个类源码的话,可以发份给你

#7


引用 6 楼 shixitong 的回复:
Quote: 引用 4 楼 smh821025 的回复:

Quote: 引用 2 楼 shixitong 的回复:

ConcurrentHashMap这个类好像jdk1.5后都有吧?不知道楼主具体想找啥?
给个链接,参考下
http://www.infoq.com/cn/news/2014/04/java-se2-tool-improve

是的,1.5之后就有了,但是后面的每个jdk版本都会有关于这个类优化的改动,我想分析下里面的源码,但是里面的
static final class Segment extends ReentrantLock implements Serializable {................}
和static final class HashEntry {....................}这些都应该属于内部类的,但是为何没有呈现在api里面呢,1.6的api我刚看了,
每个api里面都有Nested Class Summary这个,内部类的说明,但是这些在api里面都没有说明,不知道这个是为什么

这个我也不清楚,这边有1.6的源码,你要研究这个类源码的话,可以发份给你

谢谢朋友,我这边有,没事,谢了

#8


顶你,好好学习!!

#9


API是面向外部的,只有能直接提供调用的东西才有提供api的意义

#10


concurrentHashMap 一直就包含Segment和HashEntry,你仔细看concurrentHashMap 的介绍中应该会提及这两个类,但内部类是不会有api的

#11


引用 10 楼 viszl 的回复:
concurrentHashMap 一直就包含Segment和HashEntry,你仔细看concurrentHashMap 的介绍中应该会提及这两个类,但内部类是不会有api的

但是一般的api里面都有Nested Classes这一栏,那这个标明有什么意义么,而且1.8里面是有内部类的说明的,但是奇怪的是里面直列了一个,见我帖子的那个图,而且那个内部类是public的,难道只有public的才会被说明?是不是其他的内部类会在接口中说明,我没有查到的原因么?

#12


这几个内部类的作用是为了实现 Java 8 的 streaming 语法。

#13


引用 12 楼 YidingHe 的回复:
这几个内部类的作用是为了实现 Java 8 的 streaming 语法。

你说的我更加迷糊了,首先这种语法我没有听说过,后面可以研究下,但是api里面不是应该把所有的内部类,构造方法,普通方法都应该列出么?

#14


引用 13 楼 smh821025 的回复:
Quote: 引用 12 楼 YidingHe 的回复:

这几个内部类的作用是为了实现 Java 8 的 streaming 语法。

你说的我更加迷糊了,首先这种语法我没有听说过,后面可以研究下,但是api里面不是应该把所有的内部类,构造方法,普通方法都应该列出么?
生成 API 文档的时候是可以控制级别的。

#15


引用 14 楼 YidingHe 的回复:
Quote: 引用 13 楼 smh821025 的回复:

Quote: 引用 12 楼 YidingHe 的回复:

这几个内部类的作用是为了实现 Java 8 的 streaming 语法。

你说的我更加迷糊了,首先这种语法我没有听说过,后面可以研究下,但是api里面不是应该把所有的内部类,构造方法,普通方法都应该列出么?
生成 API 文档的时候是可以控制级别的。

控制什么级别

#16


该回复于2014-09-22 08:51:09被管理员删除

#17


 Maintaining API and serialization compatibility with previous
      versions of this class introduces several oddities. Mainly: We
      leave untouched but unused constructor arguments refering to
      concurrencyLevel. We accept a loadFactor constructor argument,
      but apply it only to initial table capacity (which is the only
      time that we can guarantee to honor it.) We also declare an
      unused "Segment" class that is instantiated in minimal form
       only when serializing.

以上是源码中的一段注释,最近也开始学,比较迷糊

推荐阅读
  • Java之HashMap在多线程情况下导致死循环的问题
    PS:不得不说Java编程思想这本书是真心强大..学习内容:1.HashMap<K,V>在多线程的情况下出现的死循环现象当初学Java的时候只是知道HashMap< ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 转载自:http:www.blogjava.netCarpenterLeearchive20160427430268.html总体介绍之所以把HashSet和HashMa ... [详细]
  • 缓存这个东西就是为了提高运行速度的,由于缓存是在寸土寸金的内存里面,不是在硬盘里面,所以容量是很有限的。LRU这个算法就是把最近一次使用时间离现在时间最远的数据删除掉。先说说List:每 ... [详细]
  • 手写HashMap,快手面试官直呼内行
    手写HashMap,快手面试官直呼内行-手写HashMap?这么狠,面试都卷到这种程度了?第一次见到这个面试题,是在某个不方便透露姓名的Offer收割机大佬的文章:这……我当 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 关于CMS收集器的知识介绍和优缺点分析
    本文介绍了CMS收集器的概念、运行过程和优缺点,并解释了垃圾回收器的作用和实践。CMS收集器是一种基于标记-清除算法的垃圾回收器,适用于互联网站和B/S系统等对响应速度和停顿时间有较高要求的应用。同时,还提供了其他垃圾回收器的参考资料。 ... [详细]
  • ***byte(字节)根据长度转成kb(千字节)和mb(兆字节)**parambytes*return*publicstaticStringbytes2kb(longbytes){ ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 本文介绍了关于Java异常的八大常见问题,包括异常管理的最佳做法、在try块中定义的变量不能用于catch或finally的原因以及为什么Double.parseDouble(null)和Integer.parseInt(null)会抛出不同的异常。同时指出这些问题是由于不同的开发人员开发所导致的,不值得过多思考。 ... [详细]
  • 01Map集合概述A:Map集合概述:我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同a:Collection中的集合 ... [详细]
author-avatar
狮子小刚刚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有