源码分析
自由飛祥
初来乍到小菜鸟
展开
-
HashMap源码解析
HashMap 是 数组+链表+红黑树的结构,先付一张结构图有助于更好的理解源码:如果对红黑树不了解,可以参考我另一片红黑树的简介:红黑树原理HashMap实现了 Map、Cloneable、Serializable,说明其是一个Map 并能够克隆和序列化,源码如下:public class HashMap<K,V> extends AbstractMap<K,...原创 2019-08-13 17:36:09 · 160 阅读 · 0 评论 -
TreeMap 源码解析
之前了解了ArrayList、LinkedList、HashMap、ConcurrentHashMap,接下来再来了解下TreeMap。TreeMap 底层直接维护了一个红黑树,按照惯例,先从继承 及构造函数开始。public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<...原创 2019-08-19 11:45:14 · 152 阅读 · 0 评论 -
Hashtable源码解析
Hashtable 算是平时用的比较少的一个集合了,先从继承、实现关系 及 构造函数来简单的了解一下public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable { /** * The h...原创 2019-08-19 22:36:04 · 183 阅读 · 0 评论 -
HashSet源码解析
通过之前对其他的集合的再读及整理,HashSet 相对来说就比较简单了,直接上源码看下构造函数:public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable { static final long serialVer...原创 2019-08-20 10:52:17 · 125 阅读 · 0 评论 -
TreeSet源码解析
TreeSet 的实现方式与HashSet 的实现方式非常类似,一如既往的先来一波源码,有助于理解:public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable { /** * The b...原创 2019-08-20 15:44:29 · 124 阅读 · 0 评论 -
LinkedList源码解析
LinkedList 是List的一个实现类,并实现了Deque、Cloneable、Serializable 接口实现 Deque 表示 LinkList 是一个双向队列实现Cloneable 表示LinkedList 可以被克隆实现Serializable 表示LinkedList 可以被序列化public class LinkedList<E> extend...原创 2019-08-15 16:32:04 · 112 阅读 · 0 评论 -
ArrayList源码解析
ArrayList 是List的一种实现,也是我们最常用的集合之一。ArrayList 实现 RandomAccess,Cloneable,Serializable 三个接口,说明此集合可以被克隆、序列化,实现RandomAccess(此为标记接口,内部没有任何方法),说明可以更快的通过下标访问元素。ArrayList 默认初始化大小为10,源码如下// 默认容量大小private sta...原创 2019-08-12 16:37:21 · 87 阅读 · 0 评论 -
ConcurrentHashMap 源码解析
今天来看一下ConcurrentHashMap,网上看到很多都是说 它与HashMap 很像,像到什么程度呢?区别仅在于ConcurrentHashMap 在put时加了synchronized 关键字,所以多线程环境下,ConcurrentHashMap是安全的,那么接下来我们来看一下,底层是如何实现的,如果还不了解HashMap可以参考另一篇博文HashMap源码解析。 ...原创 2019-08-16 12:25:01 · 109 阅读 · 0 评论