生活随笔
收集整理的這篇文章主要介紹了
今年Java面试必问的这些技术面,赶快收藏备战金九银十!
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
零基礎(chǔ)如何學(xué)習(xí)Java?
首先,你要明白一點(diǎn),Java入門不難!
無論你是從事哪個行業(yè),興趣一定是最好的老師,也是你學(xué)習(xí)的動力。
學(xué)習(xí)方式1:自學(xué)
自學(xué)模式其實(shí)我個人不建議絕大部分的人選擇,因?yàn)樽詫W(xué)是需要比較強(qiáng)的自制力以及約束力,例如今天計劃自學(xué)三小時,但因?yàn)橐粋€電影新出,就決定先看完電影再說,一個游戲邀約,就決定先打一把游戲再說,一個“今天已經(jīng)很累了”,就放棄了這一天的學(xué)習(xí)計劃,而很不湊巧的是,現(xiàn)在大部分年輕人都是如此。所以自學(xué)的人往往花費(fèi)很多時間成本,最后達(dá)到的效果或許也不是很滿意。
但是如果你一定要選擇自學(xué),那我建議你按照這份**《Java零基礎(chǔ)全棧開發(fā)年薪20W+》知識大綱**去學(xué)習(xí),應(yīng)對你入行找工作已經(jīng)足夠了,其他更多的Java技術(shù)棧可以通過經(jīng)驗(yàn)積累!如果你需要這份學(xué)習(xí)路線以及學(xué)習(xí)筆記,文末即可免費(fèi)領(lǐng)取!
三面頭條
面試崗位是后臺研發(fā)工程師,地點(diǎn)選擇了上海,通過大佬內(nèi)推,跳過死亡筆試,加上疫情期間,所以直接視頻面,從3點(diǎn)開始,斷斷續(xù)續(xù)到晚上8點(diǎn)結(jié)束。
一共三輪技術(shù)面試,每一輪都要寫代碼,也喜歡問一些底層知識,讓我有點(diǎn)懵逼。
一面:
寫一個題,找一個無序數(shù)組的中位數(shù)寫了個快排,然后讓我找到無序數(shù)組第k大的一個數(shù),我說先排序再找,實(shí)際上可以用快排的partition函數(shù)。快排的時間復(fù)雜度,最壞情況呢,最好情況呢,堆排序的時間復(fù)雜度呢,建堆的復(fù)雜度是多少。操作系統(tǒng)了解么,Linux和windows說說Linux的磁盤管理,一臉懵逼Linux有哪些進(jìn)程通信方式,五大件Linux的共享內(nèi)存如何實(shí)現(xiàn),大概說了一下。共享內(nèi)存實(shí)現(xiàn)的具體步驟,我說沒用過socket網(wǎng)絡(luò)編程,說一下TCP的三次握手和四次揮手。跳過網(wǎng)絡(luò),問了項目的一些東西問我如何把docker講很清楚,我從物理機(jī),虛擬機(jī)到容器具體實(shí)現(xiàn)稍微說了下。問我cgroup在linux的具體實(shí)現(xiàn),不會。多線程用過哪些,chm和countdownlatch在實(shí)習(xí)用過
二面:
自我介紹Java的集合類哪些是線程安全分別說說這些集合類,hashmap怎么實(shí)現(xiàn)的,扯了很多MySQL索引的實(shí)現(xiàn),innodb的索引,b+tree索引是怎么實(shí)現(xiàn)的,為什么用b+tree做索引節(jié)點(diǎn),一個節(jié)點(diǎn)存了多少數(shù)據(jù),怎么規(guī)定大小,與磁盤頁對應(yīng)。MySQL的事務(wù)隔離級別,分別解決什么問題。Redis了解么,如果Redis有1億個key,使用keys命令是否會影響線上服務(wù),我說會,因?yàn)槭菃尉€程模型,可以部署多個節(jié)點(diǎn)。問我知不知道有一條命令可以實(shí)現(xiàn)上面這個功能。不知道Redis的持久化方式,aod和rdb,具體怎么實(shí)現(xiàn),追加日志和備份文件,底層實(shí)現(xiàn)原理的話知道么,不清楚。Redis的list是怎么實(shí)現(xiàn)的,我說用ziplist+quicklist實(shí)現(xiàn)的,ziplist壓縮空間,quicklist實(shí)現(xiàn)鏈表。sortedset怎么實(shí)現(xiàn)的,使用dict+skiplist實(shí)現(xiàn)的,問我skiplist的數(shù)據(jù)結(jié)構(gòu),大概說了下是個實(shí)現(xiàn)簡單的快速查詢結(jié)構(gòu)。了解什么消息隊列,rmq和kafka,沒細(xì)問寫題時間到。第一題:寫一個程序遍歷。第二題:寫一個插入樹節(jié)點(diǎn)到一顆排序樹的插入方法,使用遞歸方式找到插入位置即可。第三題:一個有向圖用鄰接矩陣表示,并且是有權(quán)圖,現(xiàn)在問怎么判斷圖中有沒有環(huán)。第四題:一個二叉樹,找到二叉樹中最長的一條路徑。
三面:
三面的面試官真的高冷啊,不茍言笑就算了,我問他他都不愛搭理的,搞得我內(nèi)心慌得一比,感覺涼涼。介紹一下項目你談到的并發(fā)技術(shù),chm和countdownlatch怎么使用的為什么要這么處理,使用線程池是不是也可以。我說也可以操作系統(tǒng)的進(jìn)程通信方式,僵尸進(jìn)程和孤兒進(jìn)程是什么,如何避免僵尸進(jìn)程,我說讓父進(jìn)程顯示通知,那父進(jìn)程怎么知道子進(jìn)程結(jié)束了,答不會。計算機(jī)網(wǎng)絡(luò)TCP和UDP有什么區(qū)別,為什么迅雷下載是基于UDP的,我說FTP是基于TCP,而迅雷是p2p不需要TCP那么可靠的傳輸保證,他說不對。我說是不是因?yàn)橐⑦B接,開銷比較大,他說不對。我說p2p的發(fā)送節(jié)點(diǎn)很多,所以不是那么需要各種傳輸保證,他說不對。我說TCP會自動分包而TCP可以自己定義數(shù)據(jù)長度。。他還是說不對。最后他說算了。我們問下一個吧。操作系統(tǒng)的死鎖必要條件,如何避免死鎖。寫一個LRU的緩存,需要完成超時淘汰和LRU淘汰。我說用lhm行不行,他說用linkedlist和hashmap可以。于是我就寫了put和get函數(shù),進(jìn)行了隊頭隊尾操作。他說get復(fù)雜度會不會太高,我瞎掰了半天沒找到辦法,他說那就這樣吧,今天面試到這。過期淘汰的處理我還沒寫呢,你就說結(jié)束了,感覺涼了啊,我說我要不要把剩下邏輯說完,他說不用,心涼了一大截~
然后就是HR小姐姐讓我等結(jié)果了。感覺不對,應(yīng)該是涼涼~~~
四面阿里
有了前邊頭條面試的經(jīng)歷,自己也惡補(bǔ)了一些面試常見問題,這次決定試試阿里,畢竟面試不通過不虧,僥幸通過血賺啊。
面試崗位是研發(fā)工程師,直接找螞蟻金服的大佬進(jìn)行內(nèi)推,參與了阿里巴巴中間件部門的提前批面試,一共經(jīng)歷了四次面試,拿到了口頭offer。
一面:
自我介紹。項目中做了什么,覺得難點(diǎn)在哪里。Java的線程池說一下,各個參數(shù)的作用,如何進(jìn)行的。Redis講一下分布式系統(tǒng)的全局id如何實(shí)現(xiàn)。用zookeeper如何實(shí)現(xiàn)的呢,機(jī)器號+時間戳即可。分布式鎖的方案,redis和zookeeper哪個好,如果是集群部署,高并發(fā)情況下哪個性能更好。kafka了解么,了解哪些消息隊列。想做業(yè)務(wù)還是研究。然后出了一道題,linux的訪問權(quán)限是rwx格式的。使用一個類支持訪問權(quán)限的增刪改查,并且注意使用的數(shù)據(jù)格式以及方法效率,規(guī)范。給了一個多小時寫題。耗時將近30分鐘。
二面:
介紹你做的項目和其中的難點(diǎn)。上次面試官問的問題,反射的作用是什么。數(shù)據(jù)倉庫,多線程和并發(fā)工具等。私有云,docker和k8s等。了解哪些中間件,dubbo,rocketmq,mycat等。dubbo中的rpc如何實(shí)現(xiàn)。自己實(shí)現(xiàn)rpc應(yīng)該怎么做dubbo的服務(wù)注冊與發(fā)現(xiàn)。問了些排序算法耗時將近30分鐘。
三面:
三面不是面試,而是筆試,耗時三個小時,考的是Java核心的基礎(chǔ)。但是好像不能透題,就不說了。都挺有難度的。
大概說一下就是有幾個考點(diǎn),Java并發(fā)的知識點(diǎn),集合類,線程池,多線程、高并發(fā)之間的通信等。
HR面:
聊人生談理想,HR小姐姐非常溫柔,交流十分愉快。30分鐘。
最后
整理的這些資料希望對Java開發(fā)的朋友們有所參考以及少走彎路,本文的重點(diǎn)是你有沒有收獲與成長,其余的都不重要,希望讀者們能謹(jǐn)記這一點(diǎn)。
再免費(fèi)分享一波我的Java專題面試真題+視頻學(xué)習(xí)詳解+Java進(jìn)階學(xué)習(xí)書籍
mg-X4EmqC8M-1621415532436)]
再免費(fèi)分享一波我的Java專題面試真題+視頻學(xué)習(xí)詳解+Java進(jìn)階學(xué)習(xí)書籍
其實(shí)面試這一塊早在第一個說的25大面試專題就全都有的。以上提及的這些全部的面試+學(xué)習(xí)的各種筆記資料,我這差不多來回搞了三個多月,收集整理真的很不容易,其中還有很多自己的一些知識總結(jié)。正是因?yàn)楹苈闊?#xff0c;所以對以上這些學(xué)習(xí)復(fù)習(xí)資料感興趣,
總結(jié)
以上是生活随笔為你收集整理的今年Java面试必问的这些技术面,赶快收藏备战金九银十!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。