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

資訊專(zhuān)欄INFORMATION COLUMN

java基礎(chǔ) 面試題

cc17 / 994人閱讀

摘要:的區(qū)別是不可變的,如果嘗試去修改,會(huì)新生成一個(gè)字符串對(duì)象,和是可變的是線程安全的,是線程不安全的,所以在單線程環(huán)境下效率會(huì)更高和有哪些區(qū)別首先,他們的底層數(shù)據(jù)結(jié)構(gòu)不同,底層是基于數(shù)組實(shí)現(xiàn)的,底層是基于鏈表實(shí)現(xiàn)的由于底層

1、String、StringBuffer、StringBuilder的區(qū)別
1.String是不可變的,如果嘗試去修改,會(huì)新生成一個(gè)字符串對(duì)象,StringBuffer和StringBuilder是可變的
2.StringBuffer是線程安全的,StringBuilder是線程不安全的,所以在單線程環(huán)境下StringBuilder效率會(huì)更高

2、ArrayList和LinkedList有哪些區(qū)別
1.首先,他們的底層數(shù)據(jù)結(jié)構(gòu)不同,ArrayList底層是基于數(shù)組實(shí)現(xiàn)的,LinkedList底層是基于鏈表實(shí)現(xiàn)的
2.由于底層數(shù)據(jù)結(jié)構(gòu)不同,他們所適用的場(chǎng)景也不同,ArrayList更適合隨機(jī)查找,LinkedList更適合刪除和添加,查詢、添加、刪除的時(shí)間復(fù)雜度不同
3.另外ArrayList和LinkedList都實(shí)現(xiàn)了List接口,但是LinkedList還額外實(shí)現(xiàn)了Deque接口,所以LinkedList還可以當(dāng)做隊(duì)列來(lái)使用

3、CopyOnWriteArrayList的底層原理是怎樣的
1.首先CopyOnWriteArrayList內(nèi)部也是用過(guò)數(shù)組來(lái)實(shí)現(xiàn)的,在向CopyOnWriteArrayList添加元素時(shí),會(huì)復(fù)制一個(gè)新的數(shù)組,寫(xiě)操作在新數(shù)組上進(jìn)行,讀操作在原數(shù)組上進(jìn)行
2.并且,寫(xiě)操作會(huì)加鎖,防止出現(xiàn)并發(fā)寫(xiě)入丟失數(shù)據(jù)的問(wèn)題
3.寫(xiě)操作結(jié)束之后會(huì)把原數(shù)組指向新數(shù)組
4. CopyOnWriteArrayList允許在寫(xiě)操作時(shí)來(lái)讀取數(shù)據(jù),大大提高了讀的性能,因此適合讀多寫(xiě)少的應(yīng)用場(chǎng)景,但是CopyOnWriteArrayList會(huì)比較占內(nèi)存,同時(shí)可能讀到的數(shù)據(jù)不是實(shí)時(shí)最新的數(shù)據(jù),所以不適合實(shí)時(shí)性要求很高的場(chǎng)景

4、HashMap的擴(kuò)容機(jī)制原理
1.7版本
1.先生成新數(shù)組
2.遍歷老數(shù)組中的每個(gè)位置上的鏈表上的每個(gè)元素
3.取每個(gè)元素的key,并基于新數(shù)組長(zhǎng)度,計(jì)算出每個(gè)元素在新數(shù)組中的下標(biāo)
4.將元素添加到新數(shù)組中去
5.所有元素轉(zhuǎn)移完了之后,將新數(shù)組賦值給HashMap對(duì)象的table屬性
1.8版本
1.先生成新數(shù)組
2.遍歷老數(shù)組中的每個(gè)位置上的鏈表或紅黑樹(shù)
3.如果是鏈表,則直接將鏈表中的每個(gè)元素重新計(jì)算下標(biāo),并添加到新數(shù)組中去
4.如果是紅黑樹(shù),則先遍歷紅黑樹(shù),先計(jì)算出紅黑樹(shù)中每個(gè)元素對(duì)應(yīng)在新數(shù)組中的下標(biāo)位置
a.統(tǒng)計(jì)每個(gè)下標(biāo)位置的元素個(gè)數(shù)
b.如果該位置下的元素個(gè)數(shù)超過(guò)了8,則生成一個(gè)新的紅黑樹(shù),并將根節(jié)點(diǎn)的添加到新數(shù)組的對(duì)應(yīng)位置
c.如果該位置下的元素個(gè)數(shù)沒(méi)有超過(guò)8,那么則生成一個(gè)鏈表,并將鏈表的頭節(jié)點(diǎn)添加到新數(shù)組的對(duì)應(yīng)位置
5.所有元素轉(zhuǎn)移完了之后,將新數(shù)組賦值給HashMap對(duì)象的table屬性

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

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

相關(guān)文章

  • 求職準(zhǔn)備 - 收藏集 - 掘金

    摘要:一基礎(chǔ)接口的意義百度規(guī)范擴(kuò)展回調(diào)抽象類(lèi)的意義想不想通過(guò)一線互聯(lián)網(wǎng)公司面試文檔整理為電子書(shū)掘金簡(jiǎn)介谷歌求職記我花了八個(gè)月準(zhǔn)備谷歌面試掘金原文鏈接翻譯者 【面試寶典】從對(duì)象深入分析 Java 中實(shí)例變量和類(lèi)變量的區(qū)別 - 掘金原創(chuàng)文章,轉(zhuǎn)載請(qǐng)務(wù)必保留原出處為:http://www.54tianzhisheng.cn/... , 歡迎訪問(wèn)我的站點(diǎn),閱讀更多有深度的文章。 實(shí)例變量 和 類(lèi)變量...

    cuieney 評(píng)論0 收藏0
  • Android-Java面試

    摘要:好不容易在月號(hào)這天中午點(diǎn)左右接到了來(lái)自阿里的面試電話。這里會(huì)不斷收集和更新基礎(chǔ)相關(guān)的面試題,目前已收集題。面試重難點(diǎn)的和的打包過(guò)程多線程機(jī)制機(jī)制系統(tǒng)啟動(dòng)過(guò)程,啟動(dòng)過(guò)程等等掃清面試障礙最新面試經(jīng)驗(yàn)分享,此為第一篇,開(kāi)篇。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 各大公司 Java 后端開(kāi)發(fā)面試題總結(jié) 各大公司 Jav...

    TalkingData 評(píng)論0 收藏0
  • Java面試:面向?qū)ο?,?lèi)加載器,JDBC, Spring 基礎(chǔ)概念

    摘要:為什么不是面向?qū)ο蟛皇敲嫦驅(qū)ο?,因?yàn)樗瑐€(gè)原始數(shù)據(jù)類(lèi)型,例如。自定義類(lèi)加載器繼承的自定義類(lèi)加載器。可以像下面這樣指定參數(shù)面試題面向?qū)ο?,?lèi)加載器,基礎(chǔ)概念它們的關(guān)系如下啟動(dòng)類(lèi)加載器,實(shí)現(xiàn),沒(méi)有父類(lèi)。自定義類(lèi)加載器,父類(lèi)加載器為。 1. 為什么說(shuō)Java是一門(mén)平臺(tái)無(wú)關(guān)語(yǔ)言? 平臺(tái)無(wú)關(guān)實(shí)際的含義是一次編寫(xiě)到處運(yùn)行。Java 能夠做到是因?yàn)樗淖止?jié)碼(byte code)可以運(yùn)行在任何操作...

    Euphoria 評(píng)論0 收藏0

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

0條評(píng)論

閱讀需要支付1元查看
<