太可怕了,開發5年的我與Alibaba面試官“大戰”7回合,險勝拿到p7崗offer! 我與Alibaba面試官“大戰”7回合,勝 面試阿里之前,我流了多少汗? 拿到offer後的規劃和心態

今年受大環境影響,整個互聯網企業裁員的現象比往年嚴重多了,恰巧今年又是我的第一個“五年計劃”截止的時間點,說什麼也不能夠耽擱了,所以早早準備的跳槽漲薪了。而這次的阿里之行也是路途坎坷,真的太爲難我了,可以說是和麪試官大戰了7個回合,不過好在最後到底還是給了offer!我個人情況是5年Java後臺經驗,阿里定級P7的樣子,下面是我的面試經歷分享,希望能帶來一些不一樣的啓發和幫助。


我與Alibaba面試官“大戰”7回合,勝

Alibaba大戰第一輪

第一輪面試是電話面,以基礎知識爲主,前後大概2個小時左右,這個階段我是比較緊張的。

  1. 先自我介紹,包含日常工作
  2. 多線程,ThreadLocal,問了父子線程怎麼共享數據 interitableThreadLocals
  3. Lock和Sync的區別
  4. AQS原理(執行過程源碼,入隊出隊的細節,源碼細節)
  5. CountDownLatch和CyclicBarrier的區別是什麼源碼級別
  6. volatile從指令重排序,內存屏障
  7. 數據庫,MySQL索引,執行計劃、count1*區別、舉例優化sql、MVCC和事務隔離級別的關係、間隙鎖、行鎖
  8. JVM調優(可達性分析算法中根節點有哪些、cms和G1區別、怎樣GC調優、怎樣排查CPU彪高、內存彪高、逃逸分析)
  9. redis數據結構、跳躍表、redis qps能上多少,怎麼知道的、sentinel和cluster區別和各自適用場景、redis cluster集羣同步過程、redis單線程爲什麼快、多大叫大key、熱key產生原因和後果以及怎麼解決、本地緩存需要高時效性怎麼辦?
  10. spring的作用、spring循環依賴怎麼解決(說出三級緩存源碼細節)、spring aop原理(動態代理)、spring bean生命週期(源碼細節,以及各個位置的設計思路,有什麼可擴展的)
  11. dubbo服務暴露和引用過程,負載均衡策略,容錯機制在哪裏實現的源碼
  12. 項目中碰到的問題
  13. 爲什麼換工作,如果通過會直接說有筆試題,和你確認筆試時間

Alibaba大戰第二輪

第二輪是筆試,總共兩道題,第一題是寫代碼,第二題是寫技術方案。

  1. 主要是以查詢爲主,考察鎖粒度、時間粒度上的細節點。(詳細省略)

Alibaba大戰第三輪

第三輪是現場面試,這一輪面試以解決方案爲主,前後大概約1小時20分鐘。

  1. 緩存穿透,讓我設計一個防止緩存穿透的解決方案,簡單的就是存null值,但肯定會深究,可以結合布隆過濾器,設計分佈式系統,裏面又會問到流量分發到具體過濾器服務的方式,比如一致性hash算法,怎麼調用?比如dubbo直連、等等細節會邊說邊問
  2. 有沒有做限流,設計一個侵入性最小的限流服務
  3. 項目中碰到的問題,最好說框架本身問題,能體現個人能力,也避免問題太低級被面試官看low,剛好之前有發現一個dubbo的bug,所以這問題應該回答的還可以
  4. 爲什麼換工作,每輪都會問,這個得想好

Alibaba大戰第四輪

交叉面,項目爲主,時間大概爲40分鐘,問的內容不多,這個階段我個人的狀態比較放鬆了,與面試官交談的方式也自然了許多。

  1. 介紹最熟悉的項目,業務上有沒有什麼優化點;和同行業其他公司的差距和優勢(估計是P7的標準問題,總之我回答得不是太好)
  2. Dubbo服務調用過程
  3. NIO、BIO區別,NIO解決了什麼問題,Netty線程模型(源碼拷問)。
  4. MQ相關

Alibaba大戰第五輪

這輪面試真的讓我比較爲難了,面試官問什麼問題都會問到具體的數值,狀態又變緊張了,如履薄冰啊。

  1. 項目介紹
  2. 聽到說做了限流,限流標準(併發數? qps?併發數和qps關係?說出了5種限流方案和對應算法原理)
  3. dubbo調用端怎麼在jvm中生成對應服務?dubbo服務端和調用端超時時間設置和區別、dubbo長連接。
  4. mysql行鎖最大併發數?(秒殺項目指出)
  5. 設計秒殺系統,我說的異步的方式,會問怎麼優化?改爲了同步的方式,異步和同步區別? 然後我也問了阿里那邊
  6. 碰到哪些技術難點?怎麼解決?有沒有參考其他大廠?其他大廠方案什麼樣的?有沒有關注阿里這邊最新的技術?
  7. 剛剛的秒殺系統,會涉及到多個庫表的更新,分佈式事務怎麼解決,我說的消息最終一致性,異步?有沒有更好的方案?同步TCC方式,TCC方式原理?(三個階段的具體實現)

Alibaba大戰第六輪

總監面,主要是自我介紹和項目介紹,聊天的方式比較舒服,大部分是對你的整體價值觀做宏觀的把控(比如上進心,責任心,心態,工作激情等,差不多15分鐘就結束了。

  1. 說了自己的項目
  2. 主要用到的架構,做了些什麼?
  3. 比較複雜的業務邏輯講一下?
  4. ...

Alibaba大戰第七輪:

HR面,阿里的HR很不一樣,無論是氣質還是談吐都讓人佩服,問的問題也很有針對性,最後告訴我會電話反饋結果。

  1. 自我介紹
  2. 如何學習新技術?
  3. 如何團隊合作的?
  4. 遇到很難的問題,如何解決?如何突破?
  5. 職業規劃
  6. ......

面試阿里之前,我流了多少汗?

第一步:梳理知識

一般的面試,會被問到JVM原理、多線程、數據結構和算法、高併發、設計模式等內容,這都是一名普通Java開發人員的知識結構,那麼阿里P7肯定是需要具備更多的知識樹,需要掌握更全面的知識體系,所以就需要對知識進行一個系統的梳理了。

對標P7,我梳理的知識體系如下(全部已xmind軟件繪畫,無法上傳,用截圖展現,可免費下原件——點我即可):

  1. 築基必備技能:併發編程,JVM,網絡編程與高效IO,Mysql,Tomcat
  1. 設計思想與開源框架:SSM(Spring+SpringMVC+MyBatis)
  1. 性能直線提升架構技術:ZK,Nginx,RabbitMQ,RocketMQ,Kafka,elastic
  1. 高效存儲讓項目性能起飛:Redis,MongoDB,MySQL,Mycat
  1. 分佈式擴展到微服務架構:SpringBoot,SpringCloud,SpringCloud Alibaba,Docker,K8S

第二步:複習知識

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

1. 電子書籍彙總(PDF):

2. 學習筆記彙總(PDF):JVM,JAVA集合,網絡,JAVA多線程併發,JAVA基礎,Spring原理,微服務,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,設計模式,負載均衡,數據庫,一致性哈希,JAVA算法,數據結構,加密算法,分佈式緩存

第三步:刷面試題

工作5年,雖然清楚現在流行什麼技術,但對於互聯網大公司會面試一些什麼還真是不太清楚,所以面試之前刷一刷面試題還是很有必要的,能夠做到舉一反三。一線互聯網的面試題,我整理了近三年的,內容還真不少。(點我可免費分享下載

拿到offer後的規劃和心態

畢業後,我的第一個5年按照計劃進行了,那麼拿到阿里offer後,下一個5年也有要清晰的目標。接下來的時間,是形成思維方法論和知識體系的階段,同時也要培養自己團隊協助與管理能力,提升自己的眼界,從而有更長遠的發展。

至於心態,腳踏實地,不傲不餒。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章