容器
文章平均质量分 78
无忧少年
只想当一个无忧无虑的少年
展开
-
ConcurrentLinkedQueue源码详解
ConcurrentLinkedQueue详解 @author 无忧少年 @createTime 2021/03/08 ConcurrentLinkedQueue介绍 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,下面我们一起来研究下Doug Lea是如何使用原创 2021-08-07 15:01:46 · 481 阅读 · 0 评论 -
HashMap源码分析
HashMap源码分析 @author lisiwen @createTime 2020/06/10 1. HashMap类的继承关系 可以看到HashMap继承自AbstractMap,实现了Serializable和Cloneable。这里介绍AbstractMap的源码,因为阅读之后发现比较简单,有兴趣的可以自行去看看,其中的keyset()和values()方法与HashMap中的类似。Serializable接口表示HashMap实现了的序列化,Cloneable接口表示可以合法的调用原创 2020-06-29 09:21:16 · 136 阅读 · 0 评论 -
Map接口源码解析
Map接口源码解析 @author 无忧少年 @createTime 2020/06/10 public interface Map<K,V> { //同样的,如果size超过Integer.MAX_VALUE也只会返回Integer.MAX_VALUE int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Object value); V get(O原创 2021-08-07 15:02:38 · 193 阅读 · 0 评论 -
ConcurrentHashMap源码解析
文章目录ConcurrentHashMap1. ConcurrentHashMap和HashMap、HashTable之间的区别2. ConcurrentHashMap的结构ConcurrentHashMap在JDK1.8中和HashMap结构大同小异,下面介绍一下ConcurrentHashMap的基本属性3. put方法4. get 方法5.size方法 ConcurrentHashMap @author 无忧少年 @createTime 2021/03/07 1. ConcurrentHa原创 2021-08-07 15:00:08 · 123 阅读 · 0 评论 -
LinkList源码解析
LinkList源码解析 @auther 无忧少年 @creatTime 2020/07/16 一、前言 这次我们来看一下常见的List中的第二个——LinkedList,在前面分析ArrayList的时候,我们提到,LinkedList是链表的结构,其实它跟我们在分析map的时候讲到的LinkedHashMap的结构有一定的相似,但是相对简单很多,今天再详细的看一下它的具体结构,以及使用的场景等。 二、LinkedList结构概览 在看具体的结构之前我们先来看一下它的继承关系: 与Array原创 2021-08-07 14:58:52 · 275 阅读 · 0 评论 -
ArrayList源码解析
ArrayList源码解析 @auther 无忧少年 @creatTime 2020/07/10 一、ArrayList结构 顾名思义,ArrayList的结构实际就是一个Object[]。所以它的特性很明显,插入一个元素的时候,是耗时是一个常量时间O(1),在插入n个元素的时候,需要的时间就是O(n)。其他的操作中,运行的时间也是一个线性的增长(与数组中的元素个数有关)。 二、ArrayList源码解析 2.1 ArrayList类的继承关系 其中值得一提的是RandomAccess接口,原创 2021-08-07 14:57:26 · 120 阅读 · 0 评论
分享