生活随笔
收集整理的這篇文章主要介紹了
Java面试题及答案2020,kafka教程分享
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
三面頭條
面試崗位是后臺(tái)研發(fā)工程師,地點(diǎn)選擇了上海,通過(guò)大佬內(nèi)推,跳過(guò)死亡筆試,加上疫情期間,所以直接視頻面,從3點(diǎn)開(kāi)始,斷斷續(xù)續(xù)到晚上8點(diǎn)結(jié)束。
一共三輪技術(shù)面試,每一輪都要寫代碼,也喜歡問(wèn)一些底層知識(shí),讓我有點(diǎn)懵逼。
一面:
寫一個(gè)題,找一個(gè)無(wú)序數(shù)組的中位數(shù)寫了個(gè)快排,然后讓我找到無(wú)序數(shù)組第k大的一個(gè)數(shù),我說(shuō)先排序再找,實(shí)際上可以用快排的partition函數(shù)。快排的時(shí)間復(fù)雜度,最壞情況呢,最好情況呢,堆排序的時(shí)間復(fù)雜度呢,建堆的復(fù)雜度是多少。操作系統(tǒng)了解么,Linux和windows說(shuō)說(shuō)Linux的磁盤管理,一臉懵逼Linux有哪些進(jìn)程通信方式,五大件Linux的共享內(nèi)存如何實(shí)現(xiàn),大概說(shuō)了一下。共享內(nèi)存實(shí)現(xiàn)的具體步驟,我說(shuō)沒(méi)用過(guò)socket網(wǎng)絡(luò)編程,說(shuō)一下TCP的三次握手和四次揮手。跳過(guò)網(wǎng)絡(luò),問(wèn)了項(xiàng)目的一些東西問(wèn)我如何把docker講很清楚,我從物理機(jī),虛擬機(jī)到容器具體實(shí)現(xiàn)稍微說(shuō)了下。問(wèn)我cgroup在linux的具體實(shí)現(xiàn),不會(huì)。多線程用過(guò)哪些,chm和countdownlatch在實(shí)習(xí)用過(guò)
二面:
自我介紹Java的集合類哪些是線程安全分別說(shuō)說(shuō)這些集合類,hashmap怎么實(shí)現(xiàn)的,扯了很多MySQL索引的實(shí)現(xiàn),innodb的索引,b+tree索引是怎么實(shí)現(xiàn)的,為什么用b+tree做索引節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)存了多少數(shù)據(jù),怎么規(guī)定大小,與磁盤頁(yè)對(duì)應(yīng)。MySQL的事務(wù)隔離級(jí)別,分別解決什么問(wèn)題。Redis了解么,如果Redis有1億個(gè)key,使用keys命令是否會(huì)影響線上服務(wù),我說(shuō)會(huì),因?yàn)槭菃尉€程模型,可以部署多個(gè)節(jié)點(diǎn)。問(wèn)我知不知道有一條命令可以實(shí)現(xiàn)上面這個(gè)功能。不知道Redis的持久化方式,aod和rdb,具體怎么實(shí)現(xiàn),追加日志和備份文件,底層實(shí)現(xiàn)原理的話知道么,不清楚。Redis的list是怎么實(shí)現(xiàn)的,我說(shuō)用ziplist+quicklist實(shí)現(xiàn)的,ziplist壓縮空間,quicklist實(shí)現(xiàn)鏈表。sortedset怎么實(shí)現(xiàn)的,使用dict+skiplist實(shí)現(xiàn)的,問(wèn)我skiplist的數(shù)據(jù)結(jié)構(gòu),大概說(shuō)了下是個(gè)實(shí)現(xiàn)簡(jiǎn)單的快速查詢結(jié)構(gòu)。了解什么消息隊(duì)列,rmq和kafka,沒(méi)細(xì)問(wèn)寫題時(shí)間到。第一題:寫一個(gè)程序遍歷。第二題:寫一個(gè)插入樹(shù)節(jié)點(diǎn)到一顆排序樹(shù)的插入方法,使用遞歸方式找到插入位置即可。第三題:一個(gè)有向圖用鄰接矩陣表示,并且是有權(quán)圖,現(xiàn)在問(wèn)怎么判斷圖中有沒(méi)有環(huán)。第四題:一個(gè)二叉樹(shù),找到二叉樹(shù)中最長(zhǎng)的一條路徑。
三面:
三面的面試官真的高冷啊,不茍言笑就算了,我問(wèn)他他都不愛(ài)搭理的,搞得我內(nèi)心慌得一比,感覺(jué)涼涼。介紹一下項(xiàng)目你談到的并發(fā)技術(shù),chm和countdownlatch怎么使用的為什么要這么處理,使用線程池是不是也可以。我說(shuō)也可以操作系統(tǒng)的進(jìn)程通信方式,僵尸進(jìn)程和孤兒進(jìn)程是什么,如何避免僵尸進(jìn)程,我說(shuō)讓父進(jìn)程顯示通知,那父進(jìn)程怎么知道子進(jìn)程結(jié)束了,答不會(huì)。計(jì)算機(jī)網(wǎng)絡(luò)TCP和UDP有什么區(qū)別,為什么迅雷下載是基于UDP的,我說(shuō)FTP是基于TCP,而迅雷是p2p不需要TCP那么可靠的傳輸保證,他說(shuō)不對(duì)。我說(shuō)是不是因?yàn)橐⑦B接,開(kāi)銷比較大,他說(shuō)不對(duì)。我說(shuō)p2p的發(fā)送節(jié)點(diǎn)很多,所以不是那么需要各種傳輸保證,他說(shuō)不對(duì)。我說(shuō)TCP會(huì)自動(dòng)分包而TCP可以自己定義數(shù)據(jù)長(zhǎng)度。。他還是說(shuō)不對(duì)。最后他說(shuō)算了。我們問(wèn)下一個(gè)吧。操作系統(tǒng)的死鎖必要條件,如何避免死鎖。寫一個(gè)LRU的緩存,需要完成超時(shí)淘汰和LRU淘汰。我說(shuō)用lhm行不行,他說(shuō)用linkedlist和hashmap可以。于是我就寫了put和get函數(shù),進(jìn)行了隊(duì)頭隊(duì)尾操作。他說(shuō)get復(fù)雜度會(huì)不會(huì)太高,我瞎掰了半天沒(méi)找到辦法,他說(shuō)那就這樣吧,今天面試到這。過(guò)期淘汰的處理我還沒(méi)寫呢,你就說(shuō)結(jié)束了,感覺(jué)涼了啊,我說(shuō)我要不要把剩下邏輯說(shuō)完,他說(shuō)不用,心涼了一大截~
然后就是HR小姐姐讓我等結(jié)果了。感覺(jué)不對(duì),應(yīng)該是涼涼~~~
四面阿里
有了前邊頭條面試的經(jīng)歷,自己也惡補(bǔ)了一些面試常見(jiàn)問(wèn)題,這次決定試試阿里,畢竟面試不通過(guò)不虧,僥幸通過(guò)血賺啊。
面試崗位是研發(fā)工程師,直接找螞蟻金服的大佬進(jìn)行內(nèi)推,參與了阿里巴巴中間件部門的提前批面試,一共經(jīng)歷了四次面試,拿到了口頭offer。
一面:
自我介紹。項(xiàng)目中做了什么,覺(jué)得難點(diǎn)在哪里。Java的線程池說(shuō)一下,各個(gè)參數(shù)的作用,如何進(jìn)行的。Redis講一下分布式系統(tǒng)的全局id如何實(shí)現(xiàn)。用zookeeper如何實(shí)現(xiàn)的呢,機(jī)器號(hào)+時(shí)間戳即可。分布式鎖的方案,redis和zookeeper哪個(gè)好,如果是集群部署,高并發(fā)情況下哪個(gè)性能更好。kafka了解么,了解哪些消息隊(duì)列。想做業(yè)務(wù)還是研究。然后出了一道題,linux的訪問(wèn)權(quán)限是rwx格式的。使用一個(gè)類支持訪問(wèn)權(quán)限的增刪改查,并且注意使用的數(shù)據(jù)格式以及方法效率,規(guī)范。給了一個(gè)多小時(shí)寫題。耗時(shí)將近30分鐘。
二面:
介紹你做的項(xiàng)目和其中的難點(diǎn)。上次面試官問(wèn)的問(wèn)題,反射的作用是什么。數(shù)據(jù)倉(cāng)庫(kù),多線程和并發(fā)工具等。私有云,docker和k8s等。了解哪些中間件,dubbo,rocketmq,mycat等。dubbo中的rpc如何實(shí)現(xiàn)。自己實(shí)現(xiàn)rpc應(yīng)該怎么做dubbo的服務(wù)注冊(cè)與發(fā)現(xiàn)。問(wèn)了些排序算法耗時(shí)將近30分鐘。
三面:
三面不是面試,而是筆試,耗時(shí)三個(gè)小時(shí),考的是Java核心的基礎(chǔ)。但是好像不能透題,就不說(shuō)了。都挺有難度的。
大概說(shuō)一下就是有幾個(gè)考點(diǎn),Java并發(fā)的知識(shí)點(diǎn),集合類,線程池,多線程、高并發(fā)之間的通信等。
HR面:
聊人生談理想,HR小姐姐非常溫柔,交流十分愉快。30分鐘。
最后總結(jié)
搞定算法,面試字節(jié)再不怕,有需要文章中分享的這些二叉樹(shù)、鏈表、字符串、棧和隊(duì)列等等各大面試高頻知識(shí)點(diǎn)及解析,以及算法刷題LeetCode中文版的小伙伴們可以點(diǎn)贊后點(diǎn)擊這里即可免費(fèi)獲取!
最后再分享一份終極手撕架構(gòu)的大禮包(學(xué)習(xí)筆記):分布式+微服務(wù)+開(kāi)源框架+性能優(yōu)化
1R2dB)**
最后再分享一份終極手撕架構(gòu)的大禮包(學(xué)習(xí)筆記):分布式+微服務(wù)+開(kāi)源框架+性能優(yōu)化
[外鏈圖片轉(zhuǎn)存中…(img-KG38HiBy-1625571606020)]
總結(jié)
以上是生活随笔為你收集整理的Java面试题及答案2020,kafka教程分享的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。