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

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 2020年高級(jí)資深的Java面試題集

2020年高級(jí)資深的Java面試題集

更新時(shí)間:2019-12-19 15:07:31 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3093次

有哪些集合實(shí)現(xiàn),對(duì)應(yīng)的線(xiàn)程安全集合?

  主要考察集合框架的兩大類(lèi):集合(collection)和圖(map),集合下面主要了解list和set,如ArrayList、LinkedList、HashSet、TreeSet;map下主要了解HashMap、TreeMap。

  劃重點(diǎn)(加分項(xiàng)):

  ① 線(xiàn)程安全集合選兩個(gè)代表性的:ConcurrentHashMap和CopyOnWriteArrayList,了解它們是如何做到線(xiàn)程安全的。

  hashmap底層結(jié)構(gòu),為什么使用鏈表?(hashmap是面試必考題)

  HashMap的底層結(jié)構(gòu)(數(shù)組)實(shí)現(xiàn),一定要了解透徹,如put()、get()兩塊源碼花點(diǎn)心思;

  hash碰撞后產(chǎn)生的鏈表、紅黑樹(shù)順帶了解,有能力的最好看下源碼實(shí)現(xiàn)(加分項(xiàng))。

  4、阻塞隊(duì)列的實(shí)現(xiàn)原理?

  lock鎖的多條件(condition)阻塞控制,基礎(chǔ)薄弱的需要提前了解一下同步鎖synchronized、lock及Condition類(lèi),這一塊考驗(yàn)高級(jí)和中級(jí)研發(fā)人員的界限,需要挖一下源碼,多用心。

  加分項(xiàng):另外輻射出來(lái)可能會(huì)順帶直接問(wèn)你AQS,建議仔細(xì)了解其實(shí)現(xiàn)原理,如其內(nèi)部如何利用雙向鏈表的,重點(diǎn)看acquire()方法實(shí)現(xiàn)。

  JVM篇

  內(nèi)存模型(必考題)

  無(wú)論你關(guān)注jdk1.8之前還是之后,不重要,關(guān)鍵是能正常理解每一塊的作用、是否線(xiàn)程共享/私有。

  堆、虛擬機(jī)棧、本地方法棧、程序計(jì)數(shù)器、方法區(qū),需要了解每一部分的作用。

  劃重點(diǎn):

  虛擬機(jī)棧包含哪些部分、程序計(jì)數(shù)器的作用這兩塊著重了解。

  GC發(fā)生在哪一塊,GC算法?

  發(fā)生在堆內(nèi)存,GC算法主要了解:標(biāo)記清除、復(fù)制、標(biāo)記整理,需要知道其執(zhí)行步驟及各自的區(qū)別。

  劃重點(diǎn):

  年輕代劃分成哪幾部分(E、S0、S1),使用哪種算法(復(fù)制),老年代使用哪種算法(標(biāo)記清除),為什么?這里需要耐心理解透徹,很容易輻射到此類(lèi)問(wèn)題。

  MySql篇

  1、事務(wù)隔離級(jí)別,默認(rèn)哪一個(gè),解釋幻讀、不可重復(fù)讀及二者區(qū)別?

  隔離級(jí)別:讀未提交、讀提交、不可重復(fù)讀、串行化,默認(rèn)是不可重復(fù)讀,具體幻讀問(wèn)題,請(qǐng)參考筆者此前文章幻讀、不可重復(fù)讀,其中進(jìn)行了詳細(xì)說(shuō)明。

  索引失效場(chǎng)景、索引數(shù)據(jù)結(jié)構(gòu)?

  主要分為非組合索引和組合索引:

  1、非組合索引主要注意or、like(若like非左模糊情形,如xxx%,則可以使用索引),索引列存在表達(dá)式、聚合函數(shù)等等;

  2、組合索引主要注意是否遵循最左原則。

  還有些其它小點(diǎn)靠大家自己去積累,筆者這會(huì)是蒙圈狀態(tài),沒(méi)反應(yīng)過(guò)來(lái)。

  索引數(shù)據(jù)結(jié)構(gòu):主要關(guān)注B+樹(shù),花心思了解透,且需要了解聚簇索引和非聚簇索引。

  加分項(xiàng):InnoDB與MyisAM索引方面的區(qū)別。

  3、數(shù)據(jù)庫(kù)引擎

  主要可以說(shuō)說(shuō)InnoDB、MyISAM這兩個(gè)常用的即可,需要了解二者的區(qū)別,InnoDB支持事務(wù),二者使用場(chǎng)景,二者之間如何轉(zhuǎn)變。

  4、mysql分表中間件、如何監(jiān)聽(tīng)binlog

  中間件:tddl,MyCat(其實(shí)考驗(yàn)?zāi)愕闹R(shí)儲(chǔ)備廣度,一般不要求細(xì)說(shuō)中間件的實(shí)現(xiàn))。

  監(jiān)聽(tīng)時(shí)可以使用duckula中間件或者binlog監(jiān)聽(tīng)獨(dú)立jar包(common-binlog-alone)。

  5、筆者認(rèn)為高級(jí)或資深人員必須要了解的知識(shí)儲(chǔ)備:InnoDB的MVCC機(jī)制

  mysql自身的并發(fā)控制如何實(shí)現(xiàn)的,原理主要從其新增、更新、刪除三方面去了解其內(nèi)部的操作過(guò)程,其版本號(hào)如何控制等等。

2020年高級(jí)資深的Java面試題集

  考察實(shí)際問(wèn)題解決能力

  1、對(duì)于分表之后的業(yè)務(wù)常用數(shù)據(jù),比如訂單分表后,要查某段時(shí)間內(nèi)的訂單數(shù)據(jù),如何實(shí)現(xiàn)?

  本題不能直接將一張張分表查詢(xún)一遍,效率太低,偏離實(shí)際使用場(chǎng)景的時(shí)效性和性能,所以考慮引入中間件(比如ES),可以將業(yè)務(wù)熱度較高的數(shù)據(jù)抽取出來(lái)按照用戶(hù)常用查詢(xún)維度進(jìn)行組合存放,當(dāng)實(shí)際請(qǐng)求過(guò)來(lái)時(shí),直接通過(guò)es即可獲取相應(yīng)結(jié)果。

  注:這種方式也適用于DB的減壓,若問(wèn)到DB如何減壓也可以這么回答。

  比如下單之后有很多相應(yīng)的數(shù)據(jù)都要同步修改,但是這類(lèi)數(shù)據(jù)都不在同一個(gè)應(yīng)用服務(wù)和數(shù)據(jù)庫(kù)中,有什么方式可以達(dá)到數(shù)據(jù)的最終一致性?

  這一題筆者給出兩種思路(筆者傾向于后一種方式):

  ①使用消息,不同數(shù)據(jù)對(duì)應(yīng)其所在的服務(wù)進(jìn)行消息監(jiān)聽(tīng),進(jìn)而獲取消息后進(jìn)一步修改,當(dāng)然不能排除消息丟失的情況,所以需要進(jìn)一步完善;

  ②可以監(jiān)聽(tīng)binlog,當(dāng)下單數(shù)據(jù)變更后,直接通過(guò)監(jiān)聽(tīng)到的binlog的數(shù)據(jù)變更結(jié)果之后,根據(jù)具體需要進(jìn)行對(duì)應(yīng)的后續(xù)處理。

  cup飆升如何排查?

  具體說(shuō)下思路:

  ① 先要ps -ef | grep java獲得java進(jìn)程,然后使用top命令獲取cpu使用較高的線(xiàn)程;

  ② 使用jstack -l pid > /tmp/xxxx.log將堆棧情況輸出到文件中便于后續(xù)查看;

  ③將top中cpu使用率較高的線(xiàn)程id轉(zhuǎn)換成16進(jìn)制去上一步的文件中查找,大多數(shù)情況下可以定位出一些眉目;

  ④如果仍然沒(méi)有頭緒,接著使用jmap導(dǎo)出堆的dump文件,并使用Eclipse的插件進(jìn)行查看,比如找到問(wèn)題對(duì)象進(jìn)行實(shí)際代碼分析。

  現(xiàn)場(chǎng)編程

  1、將單鏈表逆序輸出,不能改變單鏈表的結(jié)構(gòu)(比如不允許將單鏈表改造成雙向鏈表)

  這一題筆者給出兩個(gè)思路:

  ① 簡(jiǎn)單點(diǎn)考慮可以借助棧來(lái)實(shí)現(xiàn),順序壓棧后直接棧頂順輸出即可;

  ② 當(dāng)然,如果要求不允許借助棧來(lái)實(shí)現(xiàn),那就需要遞歸的思想,設(shè)置兩個(gè)指針變量a和b(a->b),分別指向表頭前兩個(gè)節(jié)點(diǎn),使得a指向的節(jié)點(diǎn)為b指向的節(jié)點(diǎn)的后繼,再利用一個(gè)臨時(shí)變量,逐步后移a、b直到b為空即可。

  2、電影院選座位,共n個(gè)座位,每個(gè)座位票價(jià)不一樣,找出連續(xù)的m個(gè)座位,使其票價(jià)總和最小。

  這一題筆者直接理解為那個(gè)元素的數(shù)組(元素都是數(shù)值),找出m個(gè)連續(xù)的數(shù)字使其總和最小,給出起始點(diǎn)的下標(biāo)即可。

  可以直接順序查找,每次計(jì)算出的m個(gè)元素的總和值保存在臨時(shí)變量中,例如若使用map,則key為下標(biāo),value為sum值,記住不要過(guò)多浪費(fèi)空間,并不需要每個(gè)下標(biāo)都存放進(jìn)去,只要存放一個(gè)即可,然后依次遍歷數(shù)組下標(biāo),比較sum值(較小的放進(jìn)map,同時(shí)為了保證節(jié)省空間,放進(jìn)map前進(jìn)行清空map,使map始終只有一個(gè)元素),最終能獲取到最小的sum,拿出map的為一個(gè)鍵值對(duì),即獲取到起始下標(biāo)。

  一般現(xiàn)場(chǎng)編程題不會(huì)太難,畢竟不是讓你現(xiàn)場(chǎng)ACM,而是著重考察面試者是否保留了過(guò)硬的動(dòng)手能力,而不是只會(huì)CURD,但是算法還是需要日常積累才能自如應(yīng)付。

2020年高級(jí)資深的Java面試題集

      以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“2020年高級(jí)資深的Java面試題集”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuā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ì)電話(huà)與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产精品成人免费综合 | 久久久99精品久久久 | 99热在线免费播放 | 中文字幕婷婷 | 日本韩国欧美一区 | 香蕉久久夜色精品国产 | 91麻豆精品 | 久久性生活视频 | 欧美一级视频在线 | 欧美精品中文字幕手机免费视频 | 日韩欧美视频在线一区二区 | 在线播放ww| 久久久久久久久久久96av | 国产精品99久久久久久宅男 | 日日噜噜夜夜狠视频免费 | 99精品国产第一福利网站 | 久久久久久久国产免费看 | 四虎网址换成什么了2021 | 99re这里有精品 | 精品亚洲永久免费精品 | 一级毛片免费不卡 | 婷婷久 | 深夜福利国产福利视频 | 任你干精品视频 | 99久久国产综合精品成人影院 | 国产伦精品一区二区三区女 | 免费网站成人亚洲 | 99色视频| 免费一级真人毛片 | 亚洲天天做日日做天天看2018 | 亚洲九九视频 | 成人午夜影院在线观看 | 99视频精品全部免费免费观 | 久久午夜网 | 午夜精品久久久 | 久久国产精品一国产精品金尊 | 99国产精品久久 | 深夜福利剧场 | 久久久久久久国产免费看 | 亚洲视频综合网 | 国产1区精品 |