Vector底层同ArrarList一样,也是一个名叫 elementData 的数组 this.elementData = new Object[var1]; 当使用无参构造器去构造Vector时,他会调用有参构造器,并赋初始容量为10大小。 public Vector() { this(10); } 后续扩容时,每次扩大的容量为原有容量的两倍 int var2 = this.elementData.length; int var3 = var2 + (this.capacityIncrement > 0 ? this.capacityIncrement : var2); Vector是线程安全的,ArrayList是线程不安全的,这是他们最大的区别之一,原因是Vector集合的方法上都加了synchronized关键字 public synchronized boolean add(E var1) { ++this.modCount; this.ensureCapacityHelper(this.elementCount + 1); this.elementData[this.elementCount++] = var1; return true; }