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


**面試阿里之前,我流了多少汗? **
1.梳理知識
一般的面試,會被問到JVM原理、多執行緒、資料結構和演算法、高并發、設計模式等內容,這都是一名普通Java開發人員的知識結構,那么阿里P7肯定是需要具備更多的知識樹,需要掌握更全面的知識體系,所以就需要對知識進行一個系統的梳理了,
對標P7,我梳理的知識體系如下:
- 筑基必備技能:并發編程,JVM,網路編程與高效IO,Mysql,Tomcat
- 設計思想與開源框架:SSM(Spring+SpringMVC+MyBatis)
- 性能直線提升架構技術:ZK,Nginx,RabbitMQ,RocketMQ,Kafka,elastic
- 高效存盤讓專案性能起飛:Redis,MongoDB,MySQL,Mycat
- 分布式擴展到微服務架構:SpringBoot,SpringCloud,SpringCloud Alibaba,Docker,K8S




2.復習知識
作業這么久要重新再去面試肯定是要將自己的知識儲備重新拿出來,要把各個知識點復習到位,需要通過各個方式,選擇自己最習慣的,無論是讀電子書籍還是觀看視頻都是可以的,但要記得做好自己的學習筆記,能夠起到總結的作用,再去復習起來就特別清晰了,
電子書籍:

學習筆記:

學習視頻:

3.刷面試題
作業5年,雖然清楚現在流行什么技術,但對于互聯網大公司會面試一些什么還真是不太清楚,所以面試之前刷一刷面試題還是很有必要的,能夠做到舉一反三,一線互聯網的面試題,我整理了近三年的,內容還真不少,


拿到offer后的規劃和心態
畢業后,我的第一個5年按照計劃進行了,那么拿到阿里offer后,下一個5年也有要清晰的目標,接下來的時間,是形成思維方法論和知識體系的階段,同時也要培養自己團隊協助與管理能力,提升自己的眼界,從而有更長遠的發展,
至于心態,腳踏實地,不傲不餒,
總結
最后,希望大家都能夠有自己清晰的發展路線,希望大家都能順利拿下offer,進入理想的公司,共勉!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/183652.html
標籤:其他
