作者:狮子小刚刚 | 来源:互联网 | 2023-05-18 23:14
询问下各位,今天本来想看下并发的源码,先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 个解决方案
ConcurrentHashMap这个类好像jdk1.5后都有吧?不知道楼主具体想找啥?
给个链接,参考下
http://www.infoq.com/cn/news/2014/04/java-se2-tool-improve
API是面向外部的,只有能直接提供调用的东西才有提供api的意义
concurrentHashMap 一直就包含Segment和HashEntry,你仔细看concurrentHashMap 的介绍中应该会提及这两个类,但内部类是不会有api的
这几个内部类的作用是为了实现 Java 8 的 streaming 语法。
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.
以上是源码中的一段注释,最近也开始学,比较迷糊