源码系列
QUAN_A
萌新
展开
-
HashMap
HashMap继承自AbstractMap,实现了Map,Cloneable, Serializable接口原创 2017-07-11 18:16:10 · 267 阅读 · 0 评论 -
Set
一开始有看源码的时候,最先看的是set,点进源码之后才看到,set内部是用map实现的,花了几天时间看了集中map源码,看完之后也会忘,但是还是有很大收获,读源码的道路还是要继续下去。 HashSet HashSet继承了AbstractSet,实现了Set、Cloneable、Serializable接口。 HashSet内部的实现方式是HashMap public HashSet()原创 2017-07-19 21:01:42 · 286 阅读 · 0 评论 -
ConcurrentHashMap
ConcurrentHashMap继承了AbstractMap,实现了AbstractMap和Serializable接口。 ConcurrentHashMap是支持高并发的hashMap。 //节点信息保存了对应的hash值、key、value,及下一节点信息,但是value和下一节点信息用volatile 修饰,保证可见性。 static class Node<K,V> impl原创 2017-07-17 17:52:48 · 360 阅读 · 0 评论 -
IdentityHashMap
IdentityHashMap继承了AbstractMap,实现了Map, java.io.Serializable, Cloneable接口。IdentityHashMap是一个比较奇葩的hashMap,为什么这么说呢,因为它和别的HashMap有很大区别。和其它HashMap相比,IdentityHashMap并没有使用hash桶链表等结构存储内部数据,而是只使用了数组来存储数据。transie原创 2017-07-16 17:04:38 · 499 阅读 · 0 评论 -
LinkedList
LinkedList继承了AbstractSequentialList,实现了 List, Deque, Cloneable, java.io.Serializable接口,Deque接口继承了Queue接口,所以LinkedList也是一个队列。 LinkdeList内部以Node为核心对内部的数据进行维护。 //链表实现 private static class Node<E>原创 2017-07-06 22:18:09 · 374 阅读 · 0 评论 -
ArrayList
List是我们常用到的集合类,JDK文档描述 All Superinterfaces: Collection, Iterable All Known Implementing Classes: AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayL原创 2017-07-03 22:58:41 · 303 阅读 · 0 评论 -
LinkedHashMap
LinkedHashMap继承自HashMap,实现了Map接口。LinkedHashMap保持了内部数据为插入的顺序。因为LinkedHashMap用双向链表维持内部数据。 static class Entry<K,V> extends HashMap.Node<K,V> { Entry<K,V> before, after;//双向链表 Entry(int原创 2017-07-14 23:43:57 · 269 阅读 · 0 评论 -
WeakHashMap
WeakHashMap继承AbstractMap,实现了Map接口。WeakHashMap内部使用了数组、队列的结构。 private static class Entry<K,V> extends WeakReference<Object> implements Map.Entry<K,V> { V value; final int hash;原创 2017-07-13 17:53:44 · 398 阅读 · 0 评论 -
TreeMap
TreeMap继承AbstractMap,实现了NavigableMap, Cloneable, java.io.Serializable接口//TreeMap内部使用红黑树维护数据static final class Entry<K,V> implements Map.Entry<K,V> { K key; V value; Entry<K,V>原创 2017-07-13 15:27:01 · 332 阅读 · 0 评论 -
HashTable
HashTable继承了Dictionary,实现了Map,Cloneable, java.io.Serializable接口。 HashTable内部比较重要的方法有get(Object key),put(K key, V value),rehash(),addEntry(int hash, K key, V value, int index),remove(Object key)HashTa原创 2017-07-12 14:05:31 · 386 阅读 · 0 评论 -
Buffer
Buffer是java.nio包下的一个抽象方法。提供了对I/O的高速操作。 Buffer主要有两种操作模式,读模式和写模式。 内部通过几个变量,对buffer进行操作。//变量所表示的意义在不同操作中也不同// Invariants: mark <= position <= limit <= capacityprivate int mark = -1;private int positi原创 2017-08-01 16:41:36 · 506 阅读 · 0 评论