Vector源码解析

一、Vector简介

Vector源码解析_第1张图片

1.Vector继承AbstractList、实现了List、RandomAccess、Cloneable、Serializable这些接口

2.Vector 实现了Cloneable接口,即实现clone()函数。它能被克隆。

3.Vector 实现 RandomAccess接口,所以提供随机访问功能,RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中,我们即可以通过元素的序号快速获取元 素对象;这就是快速随机访问

4.Vector底层也是一个对象数组,protected Object[] elementData;

5.Vector是线程同步的,即线程安全,Vector类的操作方法带有synchronized,也导致了性能低于ArrayList

二、Vector源码解析

2.1 成员变量

Vector源码解析_第2张图片

2.2 构造函数

Vector源码解析_第3张图片

2.3 add方法

2.3.1 add(E e)

Vector源码解析_第4张图片

2.3.2 ensureCapacityHelper

Vector源码解析_第5张图片

2.3.3 grow(minCapacity)

Vector源码解析_第6张图片

2.3.4 Arrays.copyOf

Vector源码解析_第7张图片

三、Vector与ArrayList比较

Vector源码解析_第8张图片

参考、教程

你可能感兴趣的:(JDK源码)