Java之Vector源碼分析(第一篇:初步瞭解)

(注意:本文基於JDK1.8)

Vector與ArrayList不同,Vector是線程安全的線性表容器,Vector底層同樣基於數組持有元素,雖然Vector在實際項目中根本不會再使用了,但是它的實現方式仍然值得我們學習,通過學習Vector的缺點可以讓我們避免犯同樣的錯誤……所以求職時Vector也是高頻面試題……

1、Vector的增刪改查方法均由synchronized修飾,這意味着在同一時刻只能有一個線程訪問這些方法,其他線程會處於阻塞狀態,這保證了作爲共享變量的底層數組的線程安全

2、Vector早在JDK1.0就發佈給用戶,而ArrayList則是JDK1.2才發佈的

3、Vector底層數組的容量默認爲10

4、Vector的擴容算法默認是1倍(擴容的增量也可自定義數量)

5、Vector的類結構

public class Vector<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{ }

a、繼承AbstractList

b、實現List,代表具備線性表的功能

c、實現RandomAccess,支持隨機訪問功能,即支持下標訪問

d、實現Cloneable,支持clone()對象

e、實現java.io.Serializable,支持序列化,歐耶

 

6、遍歷方式

a、for循環 通過下標

b、foreach方式

c、Iterator方式

d、Enumeration方式

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章