关于Jdk8中的ConcurrentHashMap所对应的API

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

但是里面只列了下面这一个内部类:
关于Jdk8中的ConcurrentHashMap所对应的API
请看过源码的朋友帮回下,谢谢 

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<K,V> extends ReentrantLock implements Serializable {................}
和static final class HashEntry<K,V> {....................}这些都应该属于内部类的,但是为何没有呈现在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<K,V> extends ReentrantLock implements Serializable {................}
和static final class HashEntry<K,V> {....................}这些都应该属于内部类的,但是为何没有呈现在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<K,V> extends ReentrantLock implements Serializable {................}
和static final class HashEntry<K,V> {....................}这些都应该属于内部类的,但是为何没有呈现在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.

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

#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<K,V> extends ReentrantLock implements Serializable {................}
和static final class HashEntry<K,V> {....................}这些都应该属于内部类的,但是为何没有呈现在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<K,V> extends ReentrantLock implements Serializable {................}
和static final class HashEntry<K,V> {....................}这些都应该属于内部类的,但是为何没有呈现在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<K,V> extends ReentrantLock implements Serializable {................}
和static final class HashEntry<K,V> {....................}这些都应该属于内部类的,但是为何没有呈现在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.

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