Vector 底层源码及剖析
基础认知和注意事项:
- Vector 为List接口的实现子类
- 底层也是一个对象数组,protected Object[] elementData
- 是线程同步的,即线程安全的。Vector类的操作方法带有Synchronized(支持线程同步和互斥)
Vector 和 ArrayList 比较:
Vector 底层源码分析
-
== 刚开始是一个带参的构造器 参数为10
-
== 添加数据到Vector 集合,其中会调用 ensureCapacityHelper() 来确定是否需要扩容,如果不够就调用grow()进行扩容
-
== 扩容方法 grow()
int newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity);
capacityIncrement 总为0,所以只要容量不够就会调用grow(),扩容为原先的两倍。