关于Jdk8中的ConcurrentHashMap所对应的API

fly2749 2014-09-01 02:41:55
询问下各位,今天本来想看下并发的源码,先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这里面?

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

请看过源码的朋友帮回下,谢谢
...全文
1433 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
shy962798922 2016-05-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. 以上是源码中的一段注释,最近也开始学,比较迷糊
fly2749 2014-09-10
  • 打赏
  • 举报
回复
引用 14 楼 YidingHe 的回复:
[quote=引用 13 楼 smh821025 的回复:] [quote=引用 12 楼 YidingHe 的回复:] 这几个内部类的作用是为了实现 Java 8 的 streaming 语法。
你说的我更加迷糊了,首先这种语法我没有听说过,后面可以研究下,但是api里面不是应该把所有的内部类,构造方法,普通方法都应该列出么?[/quote]生成 API 文档的时候是可以控制级别的。[/quote] 控制什么级别
捏造的信仰 2014-09-09
  • 打赏
  • 举报
回复
引用 13 楼 smh821025 的回复:
[quote=引用 12 楼 YidingHe 的回复:] 这几个内部类的作用是为了实现 Java 8 的 streaming 语法。
你说的我更加迷糊了,首先这种语法我没有听说过,后面可以研究下,但是api里面不是应该把所有的内部类,构造方法,普通方法都应该列出么?[/quote]生成 API 文档的时候是可以控制级别的。
fly2749 2014-09-02
  • 打赏
  • 举报
回复
引用 12 楼 YidingHe 的回复:
这几个内部类的作用是为了实现 Java 8 的 streaming 语法。
你说的我更加迷糊了,首先这种语法我没有听说过,后面可以研究下,但是api里面不是应该把所有的内部类,构造方法,普通方法都应该列出么?
捏造的信仰 2014-09-02
  • 打赏
  • 举报
回复
这几个内部类的作用是为了实现 Java 8 的 streaming 语法。
fly2749 2014-09-02
  • 打赏
  • 举报
回复
引用 10 楼 viszl 的回复:
concurrentHashMap 一直就包含Segment和HashEntry,你仔细看concurrentHashMap 的介绍中应该会提及这两个类,但内部类是不会有api的
但是一般的api里面都有Nested Classes这一栏,那这个标明有什么意义么,而且1.8里面是有内部类的说明的,但是奇怪的是里面直列了一个,见我帖子的那个图,而且那个内部类是public的,难道只有public的才会被说明?是不是其他的内部类会在接口中说明,我没有查到的原因么?
loveofmylife 2014-09-02
  • 打赏
  • 举报
回复
concurrentHashMap 一直就包含Segment和HashEntry,你仔细看concurrentHashMap 的介绍中应该会提及这两个类,但内部类是不会有api的
风梦月 2014-09-02
  • 打赏
  • 举报
回复
API是面向外部的,只有能直接提供调用的东西才有提供api的意义
业余草 2014-09-02
  • 打赏
  • 举报
回复
顶你,好好学习!!
fly2749 2014-09-01
  • 打赏
  • 举报
回复
引用 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里面都没有说明,不知道这个是为什么[/quote] 这个我也不清楚,这边有1.6的源码,你要研究这个类源码的话,可以发份给你[/quote] 谢谢朋友,我这边有,没事,谢了
shixitong 2014-09-01
  • 打赏
  • 举报
回复
引用 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里面都没有说明,不知道这个是为什么[/quote] 这个我也不清楚,这边有1.6的源码,你要研究这个类源码的话,可以发份给你
fly2749 2014-09-01
  • 打赏
  • 举报
回复
引用 2 楼 shixitong 的回复:
ConcurrentHashMap这个类好像jdk1.5后都有吧?不知道楼主具体想找啥? 给个链接,参考下 http://www.infoq.com/cn/news/2014/04/java-se2-tool-improve
你给的这个链接我看过,谢谢
fly2749 2014-09-01
  • 打赏
  • 举报
回复
引用 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里面都没有说明,不知道这个是为什么
fly2749 2014-09-01
  • 打赏
  • 举报
回复
引用 1 楼 xmt1139057136 的回复:
JDK8 我还没有使用过,我一直使用jdk1.6
我刚刚切换到了1.6,但是对应的1.6的api上面也没有内部类的说明,请问这个是怎么回事,api中不关注这个么?
shixitong 2014-09-01
  • 打赏
  • 举报
回复
ConcurrentHashMap这个类好像jdk1.5后都有吧?不知道楼主具体想找啥? 给个链接,参考下 http://www.infoq.com/cn/news/2014/04/java-se2-tool-improve
业余草 2014-09-01
  • 打赏
  • 举报
回复
JDK8 我还没有使用过,我一直使用jdk1.6

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧