
源码阅读与理解
白丝巾
QQ:137437006 欢迎骚扰
展开
-
HashMap源码阅读与理解
HashMap几个参数:默认初始化大小。tips:为什么must be a power of two呢,因为在put元素的时候会进行(length-1)&hashcode操作,2的幂次方-1等于N个1!最大容量。加载因子。0.75*当前容量大小就是判断是否扩容的标准,而每次扩容都是节点阈值。这个值就是当某个节点放入超过原创 2017-12-20 17:07:25 · 278 阅读 · 0 评论 -
Vector和Hashtable源码阅读与理解
Vector是线程安全的ArrayList:public synchronized void insertElementAt(E obj, int index) { modCount++; if (index > elementCount) { throw new ArrayIndexOutOfBoundsException(index原创 2018-01-09 10:00:29 · 212 阅读 · 0 评论 -
ArrayBlockingQueue源码阅读与理解
ArrayBlockingQueue源码阅读与理解简介:FIFO队列,运用重入锁配合Condition控制多线程进出,算法:运用一个Object数组,插入顺序0->length->0满了则等待,0->length->0逐个取空了想取也等待。几个变量: //数据存储 final Object[] items; //取数据指针 int takeIndex;原创 2018-01-09 10:32:58 · 377 阅读 · 0 评论 -
Executors源码阅读与理解
简述:此类是Executor(线程池的超级接口)的工具类,提供众多静态方法创建线程池!/*newFixedThreadPool 创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。FixedThreadPool是一个典型且优秀的线程池,它具有线程池提高程序效率和节省创建线程时所耗的开销的优点。原创 2018-01-17 17:07:52 · 274 阅读 · 0 评论 -
ReentrantLock源码阅读与理解
ReentrantLock源码阅读与理解 tips:在读这篇文章之前请先理解本博客对AQS这个类的阐述:传送门。本文针对的是理解AQS框架的基础上进行说明的。简介:重入锁具有可重入,可限时,可中断,可公平四个特性。几个属性和几个方法: //Sync这个类至关重要继承了AQS,也是重入锁的核心类之一 private final Sync sync; //这个抽原创 2018-01-06 13:58:08 · 182 阅读 · 0 评论 -
ArrayList源码的阅读与理解
JDK1.8ArrayList源码分析ArrayList几个对象:1、默认容量,默认为10。tips:在new ArrayList()的时候并不会创建一个长度为10的数组,这个数值在add的时候如果发现没有指定容量会初始化一个10长度的Object[]给它2、空对象数组。主要用于length=0时赋值原创 2017-12-21 17:12:15 · 223 阅读 · 0 评论 -
LinkedList源码阅读与理解
LinkedList源码阅读与理解几个变量: //记录长度 transient int size = 0; //记录头节点 transient Node first; //记录尾节点 transient Node last; //核心类 private static class NodeE> { //记录valu原创 2018-01-06 14:28:00 · 214 阅读 · 0 评论 -
AbstractQueuedSynchronizer源码阅读与理解
AbstractQueuedSynchronizer源码阅读和理解 简述:这个抽象类是J.U.C的锁同步的基础框架(简称:AQS),与之相关的锁同步实现类有:ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch、FutureTask……这个类使用CLH队列,让我们来一探究竟。tips:所谓CLH锁是并行计算中自旋锁的实现机原创 2018-01-05 14:07:03 · 1411 阅读 · 0 评论 -
ConcurrentLinkedQueue源码阅读与理解
ConcurrentLinkedQueue源码阅读与理解 简述:该容器是无锁无边界的队列FIFO链表。几个变量://记录头节点(不一定指向头,缓更新)private transient volatile Node head;//记录尾节点(不一定指向尾,缓更新)private transient volatile Node tail;//数据结构private static原创 2018-01-05 11:13:05 · 298 阅读 · 0 评论 -
Collections源码阅读与理解
Collections源码阅读与理解 简介:此类的作用是对Colletion包,是针对List接口下的集合进行排序、查找等操作的管理类。//带你走进sort方法 @SuppressWarnings("unchecked") public static super T>> void sort(List list) { list.sort(null); }原创 2018-01-12 15:40:29 · 278 阅读 · 0 评论 -
ConcurrentHashMap源码阅读与理解
JDK1.8 ConcurrentHashMap源码阅读与理解几个变量:原创 2017-12-22 17:05:57 · 277 阅读 · 0 评论 -
FutureTask源码阅读与理解
FutureTask源码阅读与理解简述:FutureTask实现了Runnable和Future接口,代表此类可以被线程池调度和异步执行任务。几个变量: //以下是state的几种状态 private volatile int state; private static final int NEW = 0; private static原创 2018-01-18 23:33:49 · 204 阅读 · 0 评论