jdk源码
uestcccc
这个作者很懒,什么都没留下…
展开
-
String 源码
java.lang.Stringfinal class String implements java.io.Serializable, Comparable<String>, CharSequence1.类变量&常量 private final char value[]; //用于存储值的char型数组 private int hash; // 默认为0 //原创 2016-06-08 11:49:23 · 419 阅读 · 0 评论 -
ExecutorService&Executor接口源码
interface java.util.concurrent.Executor接口Executor接口只有一个方法void execute(Runnable command); 传入参数为一个实现了Runnable接口的类interface java.util.concurrent.ExecutorService extends ExecutorExecutorService接口继承自Executo原创 2016-06-11 13:44:52 · 549 阅读 · 0 评论 -
Semaphore源码
java.util.concurrent.Semaphore implements java.io.SerializableSemaphore类称为信号量,本质上是一个共享锁。维持一定数量的许可,当线程通过acquire请求许可时,若已超过指定数量,则必须等待。1.类变量&常量 private final Sync sync; //提供所有实现机制的同步器2.构造方法 //输入参数表示原创 2016-06-11 13:44:09 · 467 阅读 · 0 评论 -
ThreadPoolExecutor源码
java.util.concurrent.ThreadPoolExecutor extends AbstractExecutorServiceThreadPoolExecutor类称为线程池。AbstractExecutorService是一个抽象类,它实现了ExecutorService接口 1.类变量&常量//ctl是一个AtomicInteger类型的原子对象。ctl记录了"线程池中的任务数原创 2016-06-11 13:45:11 · 367 阅读 · 0 评论 -
AtomicInteger源码
Atomic原子类,可以对相应的操作执行原子操作。主要分为以下几种: 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ; 3. 引用类型: AtomicReference, AtomicStampedRer原创 2016-06-11 13:45:44 · 523 阅读 · 0 评论 -
CountDownLatch源码
java.util.concurrent.CountDownLatchCountDownLatch类可以实现,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 CountDownLatch是通过“共享锁”实现的。在创建CountDownLatch中时,会传递一个int类型参数count,该参数是“锁计数器”的初始状态,表示该“共享锁”最多能被count给线程同时获取。当某线程原创 2016-06-10 20:42:21 · 353 阅读 · 0 评论 -
CyclicBarrier源码
java.util.concurrent.CyclicBarrierCyclicBarrier是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CountDownLatch和CyclicBarrier的区别 (01) CountDownLatch的作用原创 2016-06-10 20:41:56 · 651 阅读 · 0 评论 -
AbstractQueueSynchronizer源码
abstarct class java.util.concurrent.locks.AbstarctQueueSynchronizer extends AbstractOwnableSynchronizer implements java.io.SerializableAbstractQueueSynchronizer,简称AQS,是所有的锁类,如ReentrantLock、Reentran原创 2016-06-10 12:29:03 · 863 阅读 · 0 评论 -
ReentrantLock源码
java.util.concurrent.locks.ReentrantLock implements Lock, java.io.SerializableReentrantLock称为可重入锁,其内部可以分成两种锁,公平锁和非公平锁,均通过继承自一个父类Sync实现,该父类有继承自AQS类1.类变量&常量 private final Sync sync; //提供所有实现机制的同步器原创 2016-06-10 19:15:30 · 347 阅读 · 0 评论 -
ConcurrentHashMap源码
java.util.concurrent.ConcurrentHashMapConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable {设计首要目的:维护并发可读性(get、迭代相关);次要目的:使空间消耗比HashMap相同或更好,且支持多线程高效率的初始插入(原创 2016-06-08 17:31:15 · 1814 阅读 · 0 评论 -
HashMap源码
HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与Hashtable 大致相同)此类不保证映射的顺序,特别是它不原创 2016-06-06 18:58:34 · 684 阅读 · 0 评论 -
HashSet源码
HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.SerializableHashSet依赖于HashMap实现 1.类变量&常量transient HashMap<E,Object> map; //HashSet主要实现的数据结构static final Object PRESENT原创 2016-06-06 18:58:55 · 434 阅读 · 0 评论 -
LinkedList源码
LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable1.类变量&常量 transient int size = 0; //list的大小 transient Node<E> first; //list的首部原创 2016-06-06 18:59:09 · 250 阅读 · 0 评论 -
ArrayList源码
ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable类变量&常量 static final int DEFAULT_CAPACITY=10 默认的初始容量 static final Object[] EMPTY_E原创 2016-06-06 18:59:24 · 306 阅读 · 0 评论 -
LinkedHashMap源码
java.util.LinkedHashMap extends HashMap<K,V> implements Map<K,V>LinkedHashMap可以保存元素存进map中的顺序或访问元素的顺序,LinkedHashMap维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序1.类变量&常量 transient LinkedHashMap.Entry<K,V> head;原创 2016-06-08 11:48:39 · 487 阅读 · 0 评论 -
ConcurrentHashMap的jdk1.7源码
ConcurrentHashMap的锁分段技术:假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术。首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。 1.类变原创 2016-08-13 19:20:50 · 2873 阅读 · 0 评论