前言
今年的大環(huán)境非常差,互聯(lián)網(wǎng)企業(yè)裁員的現(xiàn)象比往年更嚴(yán)重了,可今年剛好是我的第一個“五年計劃”截止的時間點(diǎn),說什么也不能夠耽擱了,所以早早準(zhǔn)備的跳槽也在疫情好轉(zhuǎn)之后開始進(jìn)行了。但是,不得不說,這次阿里面試真的太難為我了,可以說是和面試官大戰(zhàn)了7個回合,不過好在最后給了offer。
我個人情況是5年Java后臺經(jīng)驗,阿里定級P7的樣子,下面是我的面試經(jīng)歷分享,希望能帶來一些不一樣的啟發(fā)和幫助。
我與阿里面試官“大戰(zhàn)”7回合,勝
第一輪:
第一輪面試是電話面,以基礎(chǔ)知識為主,前后大概2個小時左右,這個階段我是比較緊張的。
先自我介紹,包含日常工作
多線程,ThreadLocal,問了父子線程怎么共享數(shù)據(jù) interitableThreadLocals
Lock和Sync的區(qū)別
AQS原理(執(zhí)行過程源碼,入隊出隊的細(xì)節(jié),源碼細(xì)節(jié))
CountDownLatch和CyclicBarrier的區(qū)別是什么源碼級別
volatile從指令重排序,內(nèi)存屏障
數(shù)據(jù)庫,MySQL索引,執(zhí)行計劃、count1*區(qū)別、舉例優(yōu)化sql、MVCC和事務(wù)隔離級別的關(guān)系、間隙鎖、行鎖
JVM調(diào)優(yōu)(可達(dá)性分析算法中根節(jié)點(diǎn)有哪些、cms和G1區(qū)別、怎樣GC調(diào)優(yōu)、怎樣排查CPU彪高、內(nèi)存彪高、逃逸分析)
redis數(shù)據(jù)結(jié)構(gòu)、跳躍表、redis qps能上多少,怎么知道的、sentinel和cluster區(qū)別和各自適用場景、redis cluster集群同步過程、redis單線程為什么快、多大叫大key、熱key產(chǎn)生原因和后果以及怎么解決、本地緩存需要高時效性怎么辦?
spring的作用、spring循環(huán)依賴怎么解決(說出三級緩存源碼細(xì)節(jié))、spring aop原理(動態(tài)代理)、spring bean生命周期(源碼細(xì)節(jié),以及各個位置的設(shè)計思路,有什么可擴(kuò)展的)
dubbo服務(wù)暴露和引用過程,負(fù)載均衡策略,容錯機(jī)制在哪里實(shí)現(xiàn)的源碼
項目中碰到的問題。
為什么換工作,如果通過會直接說有筆試題,和你確認(rèn)筆試時間。
第二輪:
第二輪是筆試,總共兩道題,第一題是寫代碼,第二題是寫技術(shù)方案。
主要是以查詢?yōu)橹鳎疾戽i粒度、時間粒度上的細(xì)節(jié)點(diǎn)。(詳細(xì)省略)
第三輪:
第三輪是現(xiàn)場面試,這一輪面試以解決方案為主,前后大概約1小時20分鐘。
緩存穿透,讓我設(shè)計一個防止緩存穿透的解決方案,簡單的就是存null值,但肯定會深究,可以結(jié)合布隆過濾器,設(shè)計分布式系統(tǒng),里面又會問到流量分發(fā)到具體過濾器服務(wù)的方式,比如一致性hash算法,怎么調(diào)用?比如dubbo直連、等等細(xì)節(jié)會邊說邊問。
有沒有做限流,設(shè)計一個侵入性最小的限流服務(wù)。
項目中碰到的問題,最好說框架本身問題,能體現(xiàn)個人能力,也避免問題太低級被面試官看low,剛好之前有發(fā)現(xiàn)一個dubbo的bug,所以這問題應(yīng)該回答的還可以。
為什么換工作,每輪都會問,這個得想好。
第四輪:
交叉面,項目為主,時間大概為40分鐘,問的內(nèi)容不多,這個階段我個人的狀態(tài)比較放松了,與面試官交談的方式也自然了許多。
介紹最熟悉的項目,業(yè)務(wù)上有沒有什么優(yōu)化點(diǎn);和同行業(yè)其他公司的差距和優(yōu)勢(估計是P7的標(biāo)準(zhǔn)問題,總之我回答得不是太好)
Dubbo服務(wù)調(diào)用過程
NIO、BIO區(qū)別,NIO解決了什么問題,Netty線程模型(源碼拷問)。
MQ相關(guān)
第五輪:
這輪面試真的讓我比較為難了,面試官問什么問題都會問到具體的數(shù)值,狀態(tài)又變緊張了,如履薄冰啊。
項目介紹
聽到說做了限流,限流標(biāo)準(zhǔn)(并發(fā)數(shù)? qps?并發(fā)數(shù)和qps關(guān)系?說出了5種限流方案和對應(yīng)算法原理)
dubbo調(diào)用端怎么在jvm中生成對應(yīng)服務(wù)?dubbo服務(wù)端和調(diào)用端超時時間設(shè)置和區(qū)別、dubbo長連接。
mysql行鎖最大并發(fā)數(shù)?(秒殺項目指出)
設(shè)計秒殺系統(tǒng),我說的異步的方式,會問怎么優(yōu)化?改為了同步的方式,異步和同步區(qū)別? 然后我也問了阿里那邊
碰到哪些技術(shù)難點(diǎn)?怎么解決?有沒有參考其他大廠?其他大廠方案什么樣的?有沒有關(guān)注阿里這邊最新的技術(shù)?
剛剛的秒殺系統(tǒng),會涉及到多個庫表的更新,分布式事務(wù)怎么解決,我說的消息最終一致性,異步?有沒有更好的方案?同步TCC方式,TCC方式原理?(三個階段的具體實(shí)現(xiàn))
第六輪:
總監(jiān)面,主要是自我介紹和項目介紹,聊天的方式比較舒服,大部分是對你的整體價值觀做宏觀的把控(比如上進(jìn)心,責(zé)任心,心態(tài),工作激情等,差不多15分鐘就結(jié)束了。
說了自己的項目
主要用到的架構(gòu),做了些什么?
比較復(fù)雜的業(yè)務(wù)邏輯講一下?
...
第七輪:
HR面,阿里的HR很不一樣,無論是氣質(zhì)還是談吐都讓人佩服,問的問題也很有針對性,最后告訴我會電話反饋結(jié)果。
自我介紹
如何學(xué)習(xí)新技術(shù)?
如何團(tuán)隊合作的?
遇到很難的問題,如何解決?如何突破?
職業(yè)規(guī)劃
......
阿里7輪面試經(jīng)歷完整版(含答案和解析):
由于要控制文章篇幅,所以都是以截圖方式展示內(nèi)容。關(guān)于完整版面試手冊,若是感興趣想學(xué)習(xí)的朋友可“戳戳這里”領(lǐng)取


