成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Java技術(shù)面試“小抄”——集合類(lèi)(實(shí)時(shí)更新)

Travis / 2270人閱讀

摘要:接口在類(lèi)庫(kù)中有很多具體的實(shí)現(xiàn)。接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。集合類(lèi)框架的基本接口代表一組對(duì)象,每一個(gè)對(duì)象都是他的子元素不包含重復(fù)元素的有序的,可以包含重復(fù)元素將映射到的對(duì)象,不能重復(fù)。

寫(xiě)在之前:

這篇文章是自己面試過(guò)程中,總結(jié)出來(lái)的關(guān)于Java集合類(lèi)的總結(jié)。每次面試之前來(lái)出來(lái)看看,速度快,也能很迅速的回憶一些細(xì)節(jié)問(wèn)題。發(fā)布這篇文章,不僅僅是希望大家“臨陣磨槍”,更希望大家能夠以此學(xué)習(xí)其內(nèi)在原理。畢竟,源碼才是最正確的。

問(wèn)題匯總: 1.ArrayList

實(shí)現(xiàn)方式:數(shù)組;

超出容量的話(huà),增加50%,使用System.arraycopy()復(fù)制到新的數(shù)組;

默認(rèn)容量為10

get()和set()性能很高,但是add()/remove()性能差。

2.LinkedList

實(shí)現(xiàn)方式:雙向循環(huán)鏈表;

沒(méi)有容量限制;

get()和set()性能差,但是add()/remove()性能很快。

3.Vector

與ArrayList類(lèi)似

線(xiàn)程同步

使用Iterator方式遍歷

自動(dòng)增長(zhǎng)原來(lái)一倍的數(shù)組長(zhǎng)度

4.HashMap

實(shí)現(xiàn)方式:Entry[]數(shù)組實(shí)現(xiàn)的哈希桶數(shù)組;

初始容量為16,填充因子為0.7,擴(kuò)容為2倍

用Key的哈希值取模桶數(shù)組的大小可得到數(shù)組下標(biāo);

計(jì)算hash對(duì)key的hashcode進(jìn)行了二次hash,以獲得更好的散列值,然后對(duì)table數(shù)組長(zhǎng)度取摸

Entry用一個(gè)next屬性實(shí)現(xiàn)多個(gè)Entry以單向鏈表存放;

JDK8里,當(dāng)一個(gè)桶里的Entry超過(guò)8后,就不以單向鏈表而以紅黑樹(shù)來(lái)存放以加快Key的查找速度。

5.HashMap和HashTable區(qū)別

HashTable的方法前面都有synchronized來(lái)同步,是線(xiàn)程安全的;HashMap未經(jīng)同步,是非線(xiàn)程安全的。

HashTable不允許null值(key和value都不可以) ;HashMap允許null值(key和value都可以)。

HashTable有一個(gè)contains(Objectvalue)功能和containsValue(Objectvalue)功能一樣。

HashTable使用Enumeration進(jìn)行遍歷;HashMap使用Iterator進(jìn)行遍歷。

HashTable中hash數(shù)組默認(rèn)大小是11,增加的方式是old*2+1;HashMap中hash數(shù)組的默認(rèn)大小是16,而且一定是2的指數(shù)。

哈希值的使用不同,HashTable直接使用對(duì)象的hashCode; HashMap重新計(jì)算hash值,而且用與代替求模。

6.Collection和Collections的區(qū)別

java.util.Collection 是一個(gè)集合接口。它提供了對(duì)集合對(duì)象進(jìn)行基本操作的通用接口方法。Collection接口在Java 類(lèi)庫(kù)中有很多具體的實(shí)現(xiàn)。Collection接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。

java.util.Collections 是一個(gè)包裝類(lèi)。它包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法。此類(lèi)不能實(shí)例化,就像一個(gè)工具類(lèi),服務(wù)于Java的Collection框架。

7.HashMap為什么容量是2的冪次

詳見(jiàn)hashMap為啥初始化容量為2的次冪

8.hashCode和equals方法的關(guān)系

equals相等,hashcode必相等;hashcode相等,equals可能不相等。

9.Java集合類(lèi)框架的基本接口

Collection:代表一組對(duì)象,每一個(gè)對(duì)象都是他的子元素;

Set:不包含重復(fù)元素的Collection;

List:有序的Collection,可以包含重復(fù)元素;

Map:將key映射到value的對(duì)象,key不能重復(fù)。

10.Enumeration接口與Iterator接口的區(qū)別

Enumeration接口比Iterator速率的2倍

Iterator線(xiàn)程比Enumeration安全

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67770.html

相關(guān)文章

  • java源碼

    摘要:集合源碼解析回歸基礎(chǔ),集合源碼解析系列,持續(xù)更新和源碼分析與是兩個(gè)常用的操作字符串的類(lèi)。這里我們從源碼看下不同狀態(tài)都是怎么處理的。 Java 集合深入理解:ArrayList 回歸基礎(chǔ),Java 集合深入理解系列,持續(xù)更新~ JVM 源碼分析之 System.currentTimeMillis 及 nanoTime 原理詳解 JVM 源碼分析之 System.currentTimeMi...

    Freeman 評(píng)論0 收藏0
  • 金三銀四,2019大廠Android高級(jí)工程師面試題整理

    摘要:原文地址游客前言金三銀四,很多同學(xué)心里大概都準(zhǔn)備著年后找工作或者跳槽。最近有很多同學(xué)都在交流群里求大廠面試題。 最近整理了一波面試題,包括安卓JAVA方面的,目前大廠還是以安卓源碼,算法,以及數(shù)據(jù)結(jié)構(gòu)為主,有一些中小型公司也會(huì)問(wèn)到混合開(kāi)發(fā)的知識(shí),至于我為什么傾向于混合開(kāi)發(fā),我的一句話(huà)就是走上編程之路,將來(lái)你要學(xué)不僅僅是這些,豐富自己方能與世接軌,做好全棧的裝備。 原文地址:游客kutd...

    tracymac7 評(píng)論0 收藏0
  • Java - 收藏集 - 掘金

    摘要:強(qiáng)大的表單驗(yàn)證前端掘金支持非常強(qiáng)大的內(nèi)置表單驗(yàn)證,以及。面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別的種設(shè)計(jì)模式全解析后端掘金一設(shè)計(jì)模式的分類(lèi)總體來(lái)說(shuō)設(shè)計(jì)模式分為三大類(lèi)創(chuàng)建型模式,共五種工廠方法模式抽象工廠模式單例模式建造者模式原型模式。 強(qiáng)大的 Angular 表單驗(yàn)證 - 前端 - 掘金Angular 支持非常強(qiáng)大的內(nèi)置表單驗(yàn)證,maxlength、minlength、required 以及 patt...

    XiNGRZ 評(píng)論0 收藏0
  • 我的阿里之路+Java面經(jīng)考點(diǎn)

    摘要:我的是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)。因?yàn)槲倚睦砗芮宄业哪繕?biāo)是阿里。所以在收到阿里之后的那晚,我重新規(guī)劃了接下來(lái)的學(xué)習(xí)計(jì)劃,將我的短期目標(biāo)更新成拿下阿里轉(zhuǎn)正。 我的2017是忙碌的一年,從年初備戰(zhàn)實(shí)習(xí)春招,年三十都在死磕JDK源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實(shí)習(xí)offer。然后五月懷著忐忑的心情開(kāi)始了螞蟻金...

    姘擱『 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<