ConcurrentHashMap 简要分析
ConcurrentHashMap 简要分析 JDK1.7和1.8,不同之处? 1. JDK1.7 在JDK1.7中ConcurrentHashMap底层结构为Segment数组。 而Segment继承自ReentrantLock,因此Segment是一个可重入的锁,我们对Segment的线程安全操作就是通过Segment(ReentrantLock)的lock方法来保证的,同时我们也就可...
ConcurrentHashMap 简要分析 JDK1.7和1.8,不同之处? 1. JDK1.7 在JDK1.7中ConcurrentHashMap底层结构为Segment数组。 而Segment继承自ReentrantLock,因此Segment是一个可重入的锁,我们对Segment的线程安全操作就是通过Segment(ReentrantLock)的lock方法来保证的,同时我们也就可...
HashMap 源码分析 1. 成员变量 // 未指定容量时的初始化容量 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 // 最大容量 2的30次方 static final int MAXIMUM_CAPACITY = 1 << 30; // 默认的加载因子 用于扩容 static f...
LinkedList 源码分析 1. 成员变量 transient int size = 0; /** * Pointer to first node. * Invariant: (first == null && last == null) || * (first.prev == null &&a...
ArrayList 源码分析 1. 成员属性 // 默认的容量 private static final int DEFAULT_CAPACITY = 10; // 空元素时,对象数组的指向 private static final Object[] EMPTY_ELEMENTDATA = {}; // 默认的为空时的指向,用于无参构造方...