Java容器及源码剖析
喵的波波鱼
爱生活,也爱技术!
展开
-
Java集合(21)——并发集合(9)——阻塞队列(2)——LinkedBlockingQueue源码分析——待完成
1.概述 LinkedBlockingQueue:一个基于链表结构的阻塞队列,此队列按照FIFO(先进先出)排序元素,吞吐量通常要高于ArrayBlockingQueue 2.使用案例 3.源码分析 ...原创 2019-10-02 16:55:07 · 147 阅读 · 0 评论 -
Java集合(25)——并发集合(13)——阻塞队列(6)——DelayQueue源码分析
1原创 2019-10-03 07:55:01 · 135 阅读 · 0 评论 -
Java集合(20)——并发集合(8)——阻塞队列(1)——ArrayBlockingQueue源码分析
目录 1.概述 2.使用案例 3.源码分析 3.1 重要属性 3.2 构造方法 3.3 私有方法入队与出队 (1)入队 (2)出队 3.4 put和take方法 (1)put (2)take 3.5 offer和poll (1)offer (2)poll 3.6 peek 3.7 remainingCapacity 3.8 remove 4.总结 1.概述 ...原创 2019-10-02 16:54:26 · 464 阅读 · 0 评论 -
Java集合(7)——源码剖析(4)——HashMap源码分析
目录 1.概述 2.JDK1.7源码分析 2.1 底层存储的对象 2.2 成员变量 2.3 构造函数 2.4 添加键值对put 2.5 从key到数组索引值的计算 2.6 获取键值对get 2.7扩容resize 2.8 jdk1.7中HashMap多线程下扩容死锁演示与分析 3.jdk1.8源码分析 3.1 底层存储的对象 3.2 成员变量 3.3构造函数 3....原创 2019-08-28 10:54:28 · 295 阅读 · 0 评论 -
Java集合(26)——并发集合(14)——阻塞队列(7)——LinkedBlockingDeque源码分析——国庆完成
1原创 2019-10-03 07:57:03 · 127 阅读 · 0 评论 -
Java集合(19)——并发集合(7)——阻塞队列(0)——阻塞队列的架构和方法剖析
目录 1.什么是阻塞队列 2.为什么要使用阻塞队列,有哪些好处? 3.阻塞队列的架构和种类 4.BlockingQueue的核心方法 (1)抛出异常 (2)特殊值 (3)阻塞 (4)超时 1.什么是阻塞队列 阻塞队列,顾名思义,首先它是一个队列 ,而一个阻塞队列在数据结构中所起的作用大致如图: 线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素 当阻塞队列为空时,...原创 2019-10-02 16:52:48 · 376 阅读 · 0 评论 -
Java集合(22)——并发集合(10)——阻塞队列(3)——SynchronousQueue源码分析——待完成
1. SynchronousQueue:一个不存储元素的阻塞队列,每个插入操作必须等到另一个线程调用移除操作,否则插入操作一直处于阻塞状态,吞吐量通常要高于 ...原创 2019-10-02 16:55:53 · 162 阅读 · 1 评论 -
Java集合(24)——并发集合(12)——阻塞队列(5)——PriorityBlockingQueue源码分析——待完成
1.原创 2019-10-02 16:57:58 · 127 阅读 · 0 评论 -
Java集合(23)——并发集合(11)——阻塞队列(4)——LinkedTransferQueue源码分析——待完成
1.概述原创 2019-10-02 16:57:44 · 117 阅读 · 0 评论 -
Java集合(1)——基础介绍(1)——集合框架、Collection接口、Iterator接口、泛型
目录 1.集合的概述 2.集合框架图 3.Collection接口 (1)常用方法 (2)方法使用演示 4.Iterator接口 5.增强for循环 6.泛型 (1)什么是泛型 (2)创建集合对象时使用和不使用泛型的对比 (3)泛型的定义和使用 1)泛型类的定义和使用 2)含有泛型的方法定义和使用 3)泛型接口的定义与使用 (4)泛型通配符的使用 1)通配符基本使用...原创 2019-05-16 13:11:45 · 482 阅读 · 0 评论 -
Java集合(2)——基础介绍(2)——与集合有关的数据结构、List接口、Set接口
目录 1.与集合有关的几种数据结构 (1)栈 (2)队列 (3)数组 (4)链表 (5)红黑树 2.List接口 3.List集合的实现类 3.1 ArrayList集合 (1)常用构造方法 (2)常用方法 (3)ArrayList存储基本数据类型 (4)ArrayList的部分源码 3.2 LinkedList集合 3.3Vector集合 4.Set接口及其实现...原创 2019-06-12 14:42:05 · 495 阅读 · 0 评论 -
Java集合(3)——基础介绍(3)——可变参数、Collections工具类、Map接口
目录 1.可变参数 2.Collections工具类 3.Map接口 3.1 Map接口的常用实现类 3.2 Map接口的常用方法 3.3 遍历Map集合的两种方式 3.4HashMap存储自定义类型键值 3.5 LinkedHashMap 3.5 HashTable 3.6 Map集合练习 4.JDK9对集合添加的优化 5.双列集合模拟斗地主洗牌发牌 1.可变参数 ...原创 2019-06-12 21:57:01 · 529 阅读 · 0 评论 -
Java集合(4)——源码剖析(1)——ArrayList源码剖析
目录 1.概述 2.JDK1.7和JDK1.8的变化对比 总结: 3.源码详细剖析 3.1 成员变量 3.2初始化 3.3添加元素与扩容机制 (1)范围检查函数特别说明 (2)System.arraycopy和Arrays.copyOf函数特别说明 (3)扩容机制 3.4 修改和获取元素 3.5移除元素 3.6序列化和反序列化 3.7拷贝 3.8迭代器的实...原创 2019-08-23 17:06:27 · 759 阅读 · 0 评论 -
Java集合(5)——源码剖析(2)——Vector源码剖析、Vector与ArrayList的对比——待完成
1.概述 Vector是一个支持集合元素读写、且大小可变、且线程安全、最后还支持“随机访问”特性的List性质的集合。 它与ArrayList一样底层都是基于数组的,能进行动态扩容,是早期的线程安全的动态数组版本 可以看它与ArrayLlist一样也继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.Serializable...原创 2019-08-23 17:08:43 · 153 阅读 · 0 评论 -
Java集合(13)——并发集合(1)——ArrayList、HashSet、HashMap线程不安全分析
目录 1.ArrayList线程不安全分析 1.1 故障现象 1.2 导致原因分析 1.3 解决方案 (1)使用Vector (2)使用Collections.synchronizedList(List) (3)使用CopyOnWriteArrayList 1.4 优化建议 2.HashSet线程不安全分析 2.1 故障分析 2.2 解决方案 (1)使用Collection...原创 2019-08-23 17:09:25 · 570 阅读 · 0 评论 -
Java集合(14)——并发集合(2)——CopyOnWriteArrayList源码剖析
1.概述 CopyOnWrite容器即写时复制的容器,往一个容器中添加元素的时候,不直接往当前容器Object[]添加,而是先将当前容器Object[]进行Copy,复制出一个新的容器Object[] newElements,然后新的容器Object[] newElements里添加元素,添加完元素之后,再将原容器的引用指向新的容器setArray(newElements); 这样做的好处是可...原创 2019-08-23 17:11:05 · 157 阅读 · 0 评论 -
Java集合(6)——源码剖析(3)——LinkedList源码剖析
目录 1.概述 2.源码剖析 2.1 节点类(LinkedList内部类) ‘2.2 成员变量 2.3 构造函数 2.4 添加元素 (1)从链表尾部添加元素 (2)从链表头部添加元素 (3)在指定节点的前后添加元素 (4)将集合插入链表 2.5 删除元素 (1)从头部删除节点 (2)从尾部删除元素 (3)删除指定节点 2.6节点查询 2.7实现Queue接口和D...原创 2019-10-05 16:34:54 · 475 阅读 · 0 评论 -
Java集合(16)——并发集合(4)——CopyOnWriteArraySet源码剖析
1.CopyOnWriteArraySet原创 2019-10-02 16:43:57 · 124 阅读 · 0 评论 -
Java集合(17)——并发集合(5)——ConcurrentSkipListMap和ConcurrentSkipListSet源码剖析
1.原创 2019-10-02 16:44:16 · 148 阅读 · 0 评论 -
Java集合(18)——并发集合(6)——ConcurrentLinkedQueue源码分析
1.概述 2.使用 3.源码剖析原创 2019-10-02 16:48:20 · 114 阅读 · 0 评论 -
Java集合(15)——并发集合(3)——ConcurrentHashMap源码剖析
1.ConcurrentHashMap原创 2019-10-02 16:43:51 · 133 阅读 · 0 评论