大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java集合學(xué)習(xí)必會(huì)的問(wèn)題(面試官也經(jīng)常問(wèn)到)

Java集合學(xué)習(xí)必會(huì)的問(wèn)題(面試官也經(jīng)常問(wèn)到)

更新時(shí)間:2019-12-17 16:14:34 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3148次

 

Java集合學(xué)習(xí)必會(huì)的問(wèn)題(面試官也經(jīng)常問(wèn)到)

  說(shuō)說(shuō)常見(jiàn)的集合有哪些吧?

  答:Map接口和Collection接口是所有集合框架的父接口:

  Collection接口的子接口包括:Set接口和List接口

  Map接口的實(shí)現(xiàn)類主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等

  Set接口的實(shí)現(xiàn)類主要有:HashSet、TreeSet、LinkedHashSet等

  List接口的實(shí)現(xiàn)類主要有:ArrayList、LinkedList、Stack以及Vector等

  HashMap與HashTable的區(qū)別?

  HashMap沒(méi)有考慮同步,是線程不安全的;Hashtable使用了synchronized關(guān)鍵字,是線程安全的;

  HashMap允許K/V都為null;后者K/V都不允許為null;

  HashMap繼承自AbstractMap類;而Hashtable繼承自Dictionary類;

  HashMap為什么不直接使用hashCode()處理后的哈希值直接作為table的下標(biāo)?

  答:hashCode()方法返回的是int整數(shù)類型,其范圍為-(2 ^ 31)~(2 ^ 31 - 1),約有40億個(gè)映射空間,而HashMap的容量范圍是在16(初始化默認(rèn)值)~2 ^ 30,HashMap通常情況下是取不到最大值的,并且設(shè)備上也難以提供這么多的存儲(chǔ)空間,從而導(dǎo)致通過(guò)hashCode()計(jì)算出的哈希值可能不在數(shù)組大小范圍內(nèi),進(jìn)而無(wú)法匹配存儲(chǔ)位置;

  面試官:那怎么解決呢?

  HashMap自己實(shí)現(xiàn)了自己的hash()方法,通過(guò)兩次擾動(dòng)使得它自己的哈希值高低位自行進(jìn)行異或運(yùn)算,降低哈希碰撞概率也使得數(shù)據(jù)分布更平均;

  在保證數(shù)組長(zhǎng)度為2的冪次方的時(shí)候,使用hash()運(yùn)算之后的值與運(yùn)算(&)(數(shù)組長(zhǎng)度 - 1)來(lái)獲取數(shù)組下標(biāo)的方式進(jìn)行存儲(chǔ),這樣一來(lái)是比取余操作更加有效率,二來(lái)也是因?yàn)橹挥挟?dāng)數(shù)組長(zhǎng)度為2的冪次方時(shí),h&(length-1)才等價(jià)于h%length,三來(lái)解決了“哈希值與數(shù)組大小范圍不匹配”的問(wèn)題;

  面試官:為什么數(shù)組長(zhǎng)度要保證為2的冪次方呢?

  只有當(dāng)數(shù)組長(zhǎng)度為2的冪次方時(shí),h&(length-1)才等價(jià)于h%length,即實(shí)現(xiàn)了key的定位,2的冪次方也可以減少?zèng)_突次數(shù),提高HashMap的查詢效率;

  如果 length 為 2 的次冪 則 length-1 轉(zhuǎn)化為二進(jìn)制必定是 11111……的形式,在于 h 的二進(jìn)制與操作效率會(huì)非常的快,而且空間不浪費(fèi);如果 length 不是 2 的次冪,比如 length 為 15,則 length - 1 為 14,對(duì)應(yīng)的二進(jìn)制為 1110,在于 h 與操作,最后一位都為 0 ,而 0001,0011,0101,1001,1011,0111,1101 這幾個(gè)位置永遠(yuǎn)都不能存放元素了,空間浪費(fèi)相當(dāng)大,更糟的是這種情況中,數(shù)組可以使用的位置比數(shù)組長(zhǎng)度小了很多,這意味著進(jìn)一步增加了碰撞的幾率,減慢了查詢的效率!這樣就會(huì)造成空間的浪費(fèi)。

  面試官:那為什么是兩次擾動(dòng)呢?

  答:這樣就是加大哈希值低位的隨機(jī)性,使得分布更均勻,從而提高對(duì)應(yīng)數(shù)組存儲(chǔ)下標(biāo)位置的隨機(jī)性&均勻性,最終減少Hash沖突,兩次就夠了,已經(jīng)達(dá)到了高位低位同時(shí)參與運(yùn)算的目的;

  HashMap在JDK1.7和JDK1.8中有哪些不同?

Java集合學(xué)習(xí)必會(huì)的問(wèn)題(面試官也經(jīng)常問(wèn)到)

  為什么HashMap中String、Integer這樣的包裝類適合作為K?

  答:String、Integer等包裝類的特性能夠保證Hash值的不可更改性和計(jì)算準(zhǔn)確性,能夠有效的減少Hash碰撞的幾率都是final類型,即不可變性,保證key的不可更改性,不會(huì)存在獲取hash值不同的情況

  內(nèi)部已重寫了equals()、hashCode()等方法,遵守了HashMap內(nèi)部的規(guī)范(不清楚可以去上面看看putValue的過(guò)程),不容易出現(xiàn)Hash值計(jì)算錯(cuò)誤的情況;

  面試官:如果我想要讓自己的Object作為K應(yīng)該怎么辦呢?

  答:重寫hashCode()和equals()方法

  重寫hashCode()是因?yàn)樾枰?jì)算存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置,需要注意不要試圖從散列碼計(jì)算中排除掉一個(gè)對(duì)象的關(guān)鍵部分來(lái)提高性能,這樣雖然能更快但可能會(huì)導(dǎo)致更多的Hash碰撞;

  重寫equals()方法,需要遵守自反性、對(duì)稱性、傳遞性、一致性以及對(duì)于任何非null的引用值x,x.equals(null)必須返回false的這幾個(gè)特性,目的是為了保證key在哈希表中的唯一性;

Java集合學(xué)習(xí)必會(huì)的問(wèn)題(面試官也經(jīng)常問(wèn)到)

      以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java集合學(xué)習(xí)必會(huì)的問(wèn)題(面試官也經(jīng)常問(wèn)到)”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

 

相關(guān)推薦

最新最全java面試題及答案(初級(jí)到高級(jí))

史上最全的中高級(jí)JAVA工程師面試題及答案匯總

Java高級(jí)開(kāi)發(fā)工程師面試題

2019史上最全java面試題題庫(kù)大全800題

哪有資深java工程師面試題

 

 

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲欧美日韩高清一区二区一 | 国产一区二区亚洲精品 | 欧美精品1区2区 | 精品中文字幕一区二区三区四区 | 在线观看国产福利 | 欧美在线综合 | 国产精品情侣久久婷婷文字 | 国内精品视频九九九九 | 亚洲欧美一区二区三区四区 | 中文字幕一区二区精品区 | 5060午夜一级毛片免费观看 | 97影院理论 | 香蕉网站在线观看 | 亚洲国产一区在线二区三区 | 9热在线精品视频观看 | 国产成人久久久精品毛片 | 成年人视频在线免费 | 18禁片一级毛片视频播放免费看 | 国产精品嫩草影院99av视频 | 亚洲精品一区二区久久久久 | 色综合久久最新中文字幕 | 精品久久免费观看 | 国产欧美久久久精品影院 | 精品成人久久 | 深夜网站在线观看 | 九九热综合| 亚洲 欧洲 自拍 另类 校园 | 亚洲人成网i8禁止 | 男人午夜免费视频 | 亚洲综合精品一区二区三区中文 | 精品国产精品a | 色综合五月激情综合色一区 | 黄片毛片| 四虎精品免费国产成人 | 国产一区二区精品久久 | 日本高清不卡免费 | 91久久九九精品国产综合 | 亚洲日本va中文字幕婷婷 | 9999在线观看| 久热精品香蕉在线视频 | 亚洲欧美综合区自拍另类 |