# Java源码分析之Vector **Repository Path**: fpfgitmy_admin/java-source-code-vector ## Basic Information - **Project Name**: Java源码分析之Vector - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-04-28 - **Last Updated**: 2021-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### Vector源码分析 + jdk7和jdk8不变 + 与Arraylist扩容方式不同 + 原始长度为10,代码如下 ``` public Vector() { this(10); } ``` + 扩容为2倍,代码如下 ``` private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + ((capacityIncrement > 0) ? capacityIncrement : oldCapacity); if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); elementData = Arrays.copyOf(elementData, newCapacity); } ``` + 线程同步 ``` public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] = e; return true; } ``` + 古老的方法,不推荐使用,如果非要使用线程安全的集合,则可以使用`Collections.synchronizedList() `使其线程安全