螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)

螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)

銀十期間得螞蟻面試機會(本人非985/211,螞蟻真的不是很在乎學歷!!!),有了一次社招機會,前後經歷三關,受益匪淺,在此與各位朋友分享經歷與心得。

螞蟻金服Java研發一面(電話面,30分鐘左右)

  1. 自我介紹,講下最有難度的項目
  2. 對線程安全的理解
  3. 比如有一個局部變量i=1,兩個線程同時執行,是否線程安全
  4. 比如再有一個共享變量,如何保證線程安全
  5. 說說ThreadLocal,底層如何實現
  6. hashmap實現原理
  7. volatile關鍵字,解決了什麼問題
  8. 類加載機制
  9. JVM內存分佈/內存結構?棧和堆的區別?堆的結構?為什麼兩個survivor區?
  10. 對象在堆內存創建的生命週期
  11. Spring的原理?AOP的實現?
  12. 面向對象的設計原則?OCP?
  13. 分佈式系統如何保證數據一致性
  14. 有一個方法接收一個消息類型數據,通過if-else處理,如何優化
  15. 設計一個秒殺系統?考慮哪些問題?
  16. 有什麼問題想問

面試官沒有問得很深入,就是對於線程安全高併發比較看重是真的,整個面試過程還是聊得挺愉快,收穫很大,螞蟻的面試官還是很nice,很有耐心,引導性地提問。

螞蟻金服Java研發二面(現場面,30分鐘左右)

  1. 從http請求發出到響應的整個流程
  2. 追問如何http請求發送過來之後如何攔截,怎樣配置攔截,具體怎樣攔截(只知道tomcat攔截,在web.xml中配置,感覺是在問tomcat底層)
  3. 說說類加載機制,可以自定義類加載器嗎,為什麼要自定義類加載器
  4. 瞭解什麼分佈式數據一致性算法,具體說說
  5. MySQL事務隔離級別以及MVCC機制
  6. Redis緩存雪崩、緩存穿透以及如何解決?
  7. 再次問了設計秒殺系統
  8. 說說同步和異步,什麼時候用同步,什麼時候用異步
  9. 在linux上面用過什麼調優工具,用過什麼監控工具,怎樣監控自己應用資源消耗情況
  10. 如果CPU佔用資源很高有可能是什麼問題,CPU佔用資源低但是系統響應速度很慢可能是什麼問題
  11. jvm怎樣調優,堆內存棧空間設置多少合適..

螞蟻金服Java研發三面(現場面,40分鐘左右)

  1. 如果讓你實現一個MQ,怎麼樣保證消息不丟失?
  2. 硬盤io速度會變慢,有什麼解決辦法嗎?
  3. mysql的innodb索引數據結構為什麼是b+樹,用hash來實現可以嗎?
  4. 分佈式事務的實現?
  5. 如何解決redis和mysql數據一致性?
  6. 常見的MySQL主從同步方案有哪些?優劣勢比較過?
  7. 這次問的是秒殺如何防止超賣?
  8. 最近有沒有學習過新技術?
  9. 有什麼想問我的?
  10. 三年到五年的職業規劃?

總結

  1. java的基礎知識點,主要圍繞在集合類和多線程等:ArrayList、LinkedList、HashSet、HashpMap的數據結果,以及如何擴容、以及ConcurrentHashMap相關的多線程安全等。
  2. JVM的內存分配、幾個常見的垃圾回收算法以及原理、還有對應的JVM優化參數需要牢記。
  3. 網絡:
    TCP的三次握手等網絡都必問,重點掌握網絡協議。
  4. Redis:作為分佈式緩存的主力,基本也是BAT每次必考,重點是Redis的數據結構、內存、算法、持久化,以及與別的緩存memcached的優劣勢。
  5. 多線程:狀態流轉、多線程的實現,以及與高併發的區別等。
  6. Spring框架問得是最多的,BAT非常喜歡問,重點掌握。
  7. 最後就是分佈式架構設計
  8. 常用的分佈式架構設計方案:單點登錄、分佈式緩存、存儲、消息的選型,還有就是數據庫端的優化方案(需要提前瞭解)。
  9. 最好能提前瞭解深入一個類似秒殺這樣的項目,如果面試官問到類似的項目,你能把設計思路講出來,這對你的面試結果是很大的加分項。

以上是Java面試1—到5年以上開發必問到的面試問點,也都是一線互聯網公司Java面試必備技能,下面是參照阿里年薪50W所需具備的技能圖,大家可以參考下!

螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)

同時針對這12個技能,我在這整理了一份Java架構進階面試專題PDF文檔(含450題解析,包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發,設計模式,MySQL等知識點解析,內容豐富,圖文結合!)

這份專題文檔是免費分享的,有需要的朋友轉發此文後關注我私信回覆【面試】即可獲取資料的免費領取方式!

螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)

螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)

螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)

螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)

同時還有一些關於Java面試的視頻解析和架構學習筆記圖分享

螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)

螞蟻金服Java研發崗三面:MySQL+秒殺+Redis+JVM等(終獲offer)


分享到:


相關文章: