为什么线程安全的List推荐使用CopyOnWriteArrayList,而不是Vector

2020-12-28
阅读 4 分钟
19.5k
相比很多同学在刚接触Java集合的时候,线程安全的List用的一定是Vector。但是现在用到的线程安全的List一般都会用CopyOnWriteArrayList,很少有人再去用Vector了,至于为什么,文章中会具体说到。接下来,我们先来简单分析以下Vector的源码。

从面试角度分析LinkedList源码

2020-12-18
阅读 4 分钟
2.6k
LinkedList底层是由双向链表实现的。链表好比火车,每节车厢包含了车厢和连接下一节车厢的连接点。而双向链表的每个节点不仅有指向下一个节点的指针,还有指向上一个节点的指针。在LinkedList源码中有一个Node静态类,源码如下:

从面试角度分析ArrayList源码

2020-12-15
阅读 4 分钟
1.9k
注:本系列文章中用到的jdk版本均为java8ArrayList类图如下:ArrayList的底层是由数组实现的,数组的特点是固定大小,而ArrayList实现了动态扩容。ArrayList部分变量如下,在下面的分析中会用到这些变量。 {代码...} 一、初始化ArrayList初始化ArrayList一般会使用以下两个构造器1.1 无参构造器初始化ArrayList的时候如...