为什么线程安全的List推荐使用CopyOnWriteArrayList,而不是Vector
注:本系列文章中用到的jdk版本均为java8 相比很多同学在刚接触Java集合的时候,线程安全的List用的一定是Vector。但是现在用到的线程安全的List一般都会用CopyOnWriteArrayList,很少有人再去用Vector了,至于为什么,文章中会具体说到。接下来,我们先来简单分析以下Vector的源码。 一、Vector集合源码简析 由于本文的重点不是Vector集合,因此只是简单的分析一下Vector的初始化方法和添加元素的方法。 Vector的底层实现和ArrayList一样,都是由数组实现的。 Vector的主要变量如下: /** * 存放元素的数组 */ protected Object[] elementData; /** * 元素个数 */ protected int elementCount; /** * 扩容自增容量大小 */ protected int capacityIncrement; 1.1 Vector初始化 Vector的初始化提供了三个方法,除了可以指定初始容量的大小,还可以指定扩容容量的大小。构造器分别如下: 无参构造器 public ...










































