![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JDK源码阅读
文章平均质量分 79
JDK源码阅读
揚羽燕
这个作者很懒,什么都没留下…
展开
-
JDK1.8源码阅读(六):LinkedList
一、初识LinkedList LinkedList类图设计 LinkedList继承了AbstractSequentialList,从Sequential这个单词可以看出,该抽象类实现的是顺序访问的结构,这和链表有关。 LinkedList实现了Deque这个接口,这个类名字的由来是“double ended queue”,也就是双向队列,即从头部和尾部都可以进行队列的操作。 综上,LinkedList是一个双向链表的数据结构。 二、源码阅读 1、成员变量 // list中的元素个数 transient原创 2020-09-11 21:57:54 · 92 阅读 · 0 评论 -
JDK1.8源码阅读(五):ArrayList
一、初识ArrayList 顾名思义,ArrayList的结构实际就是一个数组。所以它的特性很明显,插入一个元素的时候,是耗时是一个常量时间O(1),在插入n个元素的时候,需要的时间就是O(n)。 ArrayList类图设计: ArrayList实现了RandomAccess接口:意味着其支持快速(通常是固定时间)随机访问。 ArrayList实现了Cloneable接口,意味着它能被克隆。 ArrayList实现了java.io.Serializable接口,意味着 它支持序列化。 二、源码解析 1原创 2020-09-11 21:42:57 · 88 阅读 · 0 评论 -
JDK1.8源码阅读(四):TreeMap
一、初识TreeMap 先看一下TreeMap的类图设计: TreeMap 是一个 有序的key-value集合,它是通过 红黑树 实现的。 TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合。 TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。 TreeMap 实现了Cloneable接口,意味着它能被克隆。 TreeMap 实现了java.io.Serializable接口,意味着 它支持序列化。原创 2020-09-06 22:46:53 · 92 阅读 · 0 评论 -
JDK1.8源码阅读(三):LinkedHashMap
一、初识LinkedHashMap LinkedHashMap可以认为是HashMap+LinkedList,即它既使用HashMap操作数据结构,又使用LinkedList维护插入元素的先后顺序。 先看一下LinkedHashMap类图设计: LinkedHashMap的基本实现思想是多态,由上图可以看到LinkedHashMap继承自HashMap,所以也就继承了HashMap中所有非private的方法,而在下图中我们可以看到LinkedHashMap中并没有什么操作数据结构的方法,也就是说Link原创 2020-08-28 16:14:08 · 56 阅读 · 0 评论 -
JDK1.8源码阅读(二):ConcurrentHashMap
一、HashMap类图结构 先看一下HashMap的类图设计,类图结构如下 可以看到ConcurrentHashMap继承自AbstractMap,实现了ConcurrentMap、Serializable和Cloneable。Serializable接口表示HashMap实现了的序列化,Cloneable接口表示可以合法的调用clone(),如果不实现该接口而调用clone,会报CloneNotSupportedException。 二、JDK1.7的实现 1.存储结构 ConcurrentHashM原创 2020-08-27 16:20:05 · 109 阅读 · 0 评论 -
JDK1.8源码阅读(一):HashMap
一、HashMap类图结构 我们先看一下HashMap的类图设计,类图结构如下 可以看到HashMap继承自AbstractMap,实现了Serializable和Cloneable。Serializable接口表示HashMap实现了的序列化,Cloneable接口表示可以合法的调用clone(),如果不实现该接口而调用clone,会报CloneNotSupportedException。 二...原创 2020-08-27 16:02:38 · 92 阅读 · 0 评论