Arraylist與Vector的區(qū)別

這幾天工作有點忙副瀑,有很多代碼需要寫想幻,更新文章有點慢,說聲抱歉弥虐,前幾天有人反饋LinkedList的文章不太看得懂扩灯,臨時準備補兩篇文章。

前幾篇文章我們重點說了ArrayLIst霜瘪,是時候放出這張圖了珠插。

這張圖里的內(nèi)容對我們學習Java來說,非常的重要颖对,白色的部分是需要去了解的捻撑,黃色部分是我們要去重點了解的,不但要知道怎么去用缤底,至少還需要讀一次源碼顾患。綠色部分內(nèi)容已經(jīng)很少用了,但在面試題中有可能會問到个唧,我們來看一個經(jīng)常出現(xiàn)的面試題:Arraylist與Vector的區(qū)別是什么江解?

首先我們給出標準答案:

1、Vector是線程安全的徙歼,ArrayList不是線程安全的犁河。

2、ArrayList在底層數(shù)組不夠用時在原來的基礎上擴展0.5倍魄梯,Vector是擴展1倍桨螺。

看上圖Vector和ArrayList一樣,都繼承自List酿秸,來看一下Vector的源碼

實現(xiàn)了List接口彭谁,底層和ArrayList一樣,都是數(shù)組來實現(xiàn)的允扇。分別看一下這兩個類的add方法,首先來看ArrayList的add源碼

再看Vector的add源碼

方法實現(xiàn)都一樣则奥,就是加了一個synchronized的關鍵字考润,再來看看其它方法,先看ArrayList的remove方法

再看Vector的remove方法

方法實現(xiàn)上也一樣读处,就是多了一個synchronized關鍵字糊治,再看看ArrayList的get方法


Vector的get方法


再看看Vector的其它方法

無一例外,只要是關鍵性的操作罚舱,方法前面都加了synchronized關鍵字井辜,來保證線程的安全性绎谦。當執(zhí)行synchronized修飾的方法前,系統(tǒng)會對該方法加一把鎖粥脚,方法執(zhí)行完成后釋放鎖窃肠,加鎖和釋放鎖的這個過程,在系統(tǒng)中是有開銷的刷允,因此冤留,在單線程的環(huán)境中,Vector效率要差很多树灶。(多線程環(huán)境不允許用ArrayList纤怒,需要做處理)。

至于底層數(shù)組的擴容區(qū)別天通,這里就不帶著大家讀源碼了泊窘,有興趣的朋友大家自己讀吧,底層代碼幾乎是一樣的像寒,不同的只是計算后的新數(shù)組長度不一致烘豹。

和ArrayList和Vector一樣,同樣的類似關系的類還有HashMap和HashTable萝映,StringBuilder和StringBuffer吴叶,后者是前者線程安全版本的實現(xiàn)。希望以后大家在面試過程中序臂,能說出個因為所以蚌卤,而不是一味的去背面試題,唯有理解奥秆,無需再背逊彭。

注:關于線程安全性,后續(xù)文章會說构订,這里只是簡單說這兩個類不一樣的地方侮叮。

轉(zhuǎn)載出自:https://zhuanlan.zhihu.com/p/28241176

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市悼瘾,隨后出現(xiàn)的幾起案子囊榜,更是在濱河造成了極大的恐慌,老刑警劉巖亥宿,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卸勺,死亡現(xiàn)場離奇詭異,居然都是意外死亡烫扼,警方通過查閱死者的電腦和手機曙求,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悟狱,你說我怎么就攤上這事静浴。” “怎么了挤渐?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵苹享,是天一觀的道長。 經(jīng)常有香客問我挣菲,道長富稻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任白胀,我火速辦了婚禮椭赋,結果婚禮上,老公的妹妹穿的比我還像新娘或杠。我一直安慰自己哪怔,他們只是感情好,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布向抢。 她就那樣靜靜地躺著认境,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挟鸠。 梳的紋絲不亂的頭發(fā)上叉信,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音艘希,去河邊找鬼硼身。 笑死,一個胖子當著我的面吹牛覆享,可吹牛的內(nèi)容都是我干的佳遂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼撒顿,長吁一口氣:“原來是場噩夢啊……” “哼丑罪!你這毒婦竟也來了?” 一聲冷哼從身側響起凤壁,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吩屹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拧抖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祟峦,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年徙鱼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡袱吆,死狀恐怖厌衙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绞绒,我是刑警寧澤婶希,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站蓬衡,受9級特大地震影響喻杈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜狰晚,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一筒饰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧壁晒,春花似錦瓷们、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至携取,卻和暖如春攒钳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背雷滋。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工不撑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惊豺。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓燎孟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尸昧。 傳聞我的和親對象是個殘疾皇子揩页,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355