【面經分享】網際網路寒冬,7面阿里,終獲Offer,定級P6+
點贊再看,養成習慣,微信搜尋【敖丙】關注這個網際網路苟且偷生的工具人。
本文 GitHub https://github.com/JavaFamily 已收錄,有一線大廠面試完整考點、資料以及我的系列文章。
前言
這次去阿里面試的是我老東家的好朋友,我們之前都是一個專案組的,一起吃飯,一起洗腳,一起。。。
他們公司最近也裁員了,不過他是裁員前去的阿里,不知道誰撈到他簡歷了,莫名就走了流程,他莫名的就面了7輪過了。
他想著行情這麼不好,要不就去了,去了之後,他們公司就裁員了。。。
總之今年大環境真的很差,大家都時刻做好準備,我朋友簡歷上是寫了精通dubbo的原始碼,所以你們會發現,面試中dubbo的問題很多,他面經寫得算是比較簡單,但是真實問的過程肯定會扣肯定細節。
正文
面試總共花費20天左右,包含4輪電話面試、1輪筆試、1輪主管視訊面試、1輪hr視訊面試
第一輪
電話面試(基礎知識為主,約2小時):
1,先自我介紹,包含日常工作
2,基礎知識
1)多執行緒(ThreadLocal(問了父子執行緒怎麼共享資料 interitableThreadLocals)、lock和sync區別(問HashMap1.7、1.8區別時帶出)、AQS原理(執行過程原始碼,入隊出隊的細節,原始碼細節)、CountDownLatch和CyclicBarrier的區別是什麼原始碼級別、volatile從指令重排序,記憶體屏障,聊到匯流排風暴)所佔比重較大
2)資料庫(mysql索引(聚集索引、非聚集索引、索引結構(順帶會問各種樹的特性)、執行計劃、count1*區別、舉例優化sql、MVCC和事務隔離級別的關係、間隙鎖、行鎖(和多執行緒混合問的,樂觀鎖悲觀鎖等)、唯一索引和普通索引的區別聊到了changeBuffer,聊了頁分裂合頁合併)比重較大
3)jvm調優(可達性分析演算法中根節點有哪些、cms和G1區別、怎樣GC調優、怎樣排查CPU彪高、記憶體彪高、逃逸分析)
4)redis資料結構、跳躍表、redis qps能上多少,怎麼知道的、sentinel和cluster區別和各自適用場景、redis cluster叢集同步過程、redis單執行緒為什麼快、多大叫大key、熱key產生原因和後果以及怎麼解決、本地快取需要高時效性怎麼辦.....
5)spring的作用、spring迴圈依賴怎麼解決(說出三級快取原始碼細節)、spring aop原理(動態代理)、spring bean生命週期(原始碼細節,以及各個位置的設計思路,有什麼可擴充套件的)
6)dubbo服務暴露和引用過程,負載均衡策略,容錯機制在哪裡實現的原始碼
7)專案中碰到的問題。
8)為什麼換工作,如果通過會直接說有筆試題,和你確認筆試時間。
第二輪
筆試兩道題,第一題寫程式碼,第二題寫技術方案,以查詢為主,考察鎖粒度、時間粒度上的細節點。
第三輪
電話面試(解決方案為主,約1.5個小時) 1,自我介紹、專案介紹
2,說到快取穿透,讓我設計一個防止快取穿透的解決方案,簡單的就是存null值,但肯定會深究,可以結合布隆過濾器,設計分散式系統,裡面又會問到流量分發到具體過濾器服務的方式,比如一致性hash演算法,怎麼呼叫?比如dubbo直連、等等細節會邊說邊問。
3,有沒有做限流,設計一個侵入性最小的限流服務。
4,專案中碰到的問題,最好說框架本身問題,能提現個人能力,也避免問題太低階被面試官看low,剛好之前有發現一個dubbo的bug,所以這問題應該回答的還可以。
5,為什麼換工作,每輪都會問,這個得想好。
第四輪
電話面試(專案為主,40分鐘,應該是交叉面,問的不算多)
1,介紹最熟悉的專案,業務上有沒有什麼優化點;和同行業其他公司的差距和優勢(估計是P7的標準問題吧。。。我是沒咋說好)
2,dubbo服務呼叫過程(說著說著說到服務暴露和引用上面,他直接說這個之前問過了。。不用重複說,所以面試應該有記錄面試問題)
3,NIO、BIO區別,NIO解決了什麼問題,Netty執行緒模型(原始碼拷問)。
4,MQ相關(RocketMQ、kafaka奇怪的是你寫啥面試官問啥,面試官啥都會,技術廣度深度令人髮指)
第五輪
電話面試(這位面試官比較較真,什麼問題都會問具體數值,但和他挺聊得來的,向他請教阿里那邊方案也會耐心指導,1.5小時)
1,專案介紹
2,聽到說做了限流,限流標準(併發數? qps?併發數和qps關係?說出了5種限流方案和對應演算法原理)
3,dubbo呼叫端怎麼在jvm中生成對應服務?dubbo服務端和呼叫端超時時間設定和區別、dubbo長連線。
3,mysql行鎖最大併發數?(秒殺專案指出)
4,設計秒殺系統,我說的非同步的方式,會問怎麼優化?改為了同步的方式,非同步和同步區別? 然後我也問了阿里那邊
5,碰到哪些技術難點?怎麼解決?有沒有參考其他大廠?其他大廠方案什麼樣的?有沒有關注阿里這邊最新的技術?
6,剛剛的秒殺系統,會涉及到多個庫表的更新,分散式事務怎麼解決,我說的訊息最終一致性,非同步?有沒有更好的方案?同步TCC方式,TCC方式原理?(三個階段的具體實現)
以上是技術面。
第六輪
主管視訊面試:個人介紹、專案介紹為主,十五分鐘結束。
第七輪
HR面試,專案介紹、職位介紹、離職原因、當前薪資,如果沒什麼問題,一天後會電話反饋待遇並確認是否接受。
不會問期望薪資是多少,後面會打電話告訴你評級是否接受,然後就開始安排體檢了。
總結
面試整體難度中上,因為朋友對dubbo原始碼的研讀比較深,所以基本上每一面都很加分,多執行緒環境都是常規問題,能回答道計算機底層就很加分了。
這次面試比較突然,他也沒準備,全靠平時積累了,所以中間有些描述技術細節和專案的地方他覺得沒回答好。
大家如果要面試得好好準備一番,特別是那些常規問題,有啥想問我的?為啥跳槽?等等
最近我事情比較多,你們也知道的,視訊和文章可能都輸出沒那麼高,希望大家理解。
我是敖丙,一個在網際網路苟且偷生的工具人。
你知道的越多,你不知道的越多,人才們的 【三連】 就是丙丙創作的最大動力,我們下期見!
注:如果本篇部落格有任何錯誤和建議,歡迎人才們留言,你快說句話啊!
文章持續更新,可以微信搜尋「 敖丙 」第一時間閱讀,回覆【資料】有我準備的一線大廠面試資料和簡歷模板,本文 GitHub https://github.com/JavaFamily 已經收錄,有大廠面試完整考點,歡迎Star。