JAVA集合框架源码
JNSimba
腹有诗书气自华,快叫我长胖一点吧~~~~~
展开
-
深入集合框架之ArrayList源码剖析
ArrayList概述 ArrayList底层由数组实现,非线程安全,但是数组可以动态增加,也可以叫动态数组,提供了一系列的好处,我们来深入看看: 成员变量与构造函数 /** * 存储ArrayList内的数组 */ private transient Object[] elementData; /** * The size of t原创 2015-08-11 09:27:07 · 1225 阅读 · 0 评论 -
深入集合框架之CopyOnWriteArrayList源码剖析
CopyOnWriteArrayList概述 CopyOnWriteArrayList是ArrayList的一个线程安全的变种。 CopyOnWriteArrayList与ArrayList不同处就在于是否会拷贝数组和加锁。 CopyOnWriteArrayList顾名思义就是写时复制的ArrayList,其意思就是在修改容器的元素时,并不是直接在原数组上修改,而是先拷贝了一份数组,然后原创 2015-08-11 17:08:39 · 1093 阅读 · 0 评论 -
深入集合框架之Hashtable源码剖析
为了分析ConcurrentHashMap,决定先分析一下Hashtable,两者都是线程安全的,必然会有不同的区别,Hashtable和HashMap也有很大的区别。 我们先来看看Hashtable吧。 成员变量: //存储单链表表头的数组,和HashMap中类似 private transient Entry[] table; //Hashtable中实际元素原创 2015-08-12 22:49:24 · 972 阅读 · 0 评论 -
ConcurrentHashMap浅析
概述: ConcurrentHashMap是HashMap的升级版,我们都知道HashMap是不可靠的,线程不安全的,而Hashtable在同步的时候又会将整张表都锁住,从而在多并发的情况下效率低下。于是ConcurrentHashMap出现了,综合了两者的优点,所以一直是高并发情况下开发者的首选,但是相对的,它也有自身的一些不足,我们来分析一下它的原理。 ConcurrentHash原创 2015-08-14 21:43:23 · 2612 阅读 · 0 评论 -
深入集合框架之HashMap源码剖析
简介 源码分析 HashMap是JAVA抽象出来存储键值对的集合,它的底层是哈希表,有哈希表就会有冲突,所以HashMap用单链表解决冲突,也就是拉链法。 HashMap是不安全的,在多线程的环境下可用ConcurrentHashMap,或者利用Collections工具类中的同步方法。先不急于说明其他的,我们先来分析一下单链表的构造static class Entry<K,V> implemen原创 2015-07-20 15:45:16 · 1062 阅读 · 0 评论 -
深入集合框架之HashSet源码剖析
HashSet实现了Set接口,也就是说它存储的元素是无重复的。 通过源码分析我们可以发现HashSet就是HashMap的一个实例。 因为在HashMap中的键是不能重复的,我们可以把HashSet想象成HashMap中的键,而且事实也就是如此。 public class HashSet extends AbstractSet implements原创 2015-08-05 22:31:16 · 974 阅读 · 0 评论