螞蟻金服一面:
- 先自我介紹,講講自己基礎掌握情況,以及項目經歷平時會用到哪些數據結構?
- 鏈表和數組的優缺點?
- 解決hash沖突的方法有哪些?
- 講講自己對HashMap的理解,以及和Weakhashmap的區別?
- 你剛才講的是JDK1.7版本的實現,知道JDK1.8做了哪些改動么?
- 你們在微服務中用RPC通信還是REST?
- RPC和HTTP的關系是什么?
- 談談什么是HTTP的長連接和短連接?
- TCP的三次握手和四次揮手,以及為什么要三次握手,而不是二次?
- TCP 有哪些狀態,相應狀態的含義?并發包中鎖的實現底層(對AQS的理解)?
- 樂觀鎖和悲觀鎖的理解及如何實現,有哪些實現方式?
- SynchronizedMap和ConcurrentHashMap有什么區別?如何使用阻塞隊列實現一個生產者和消費者模型?
- 簡述一下Java 垃圾回收機制?
- 如何判斷一個對象是否存活?
- 什么是tomcat類加載機制?
- 類加載器雙親委派模型機制?
- 讓你評價一下你自己?
螞蟻金服二面:
- 扯了下項目、講一下項目經歷redis的底層數據結構了解多少?
- 知道動態字符串sds的優缺點么(redis底層數據結構之一)?
- redis的單線程特性有什么優缺點?
- 用過 Redis 的哪些數據結構, 分別用在什么場景?怎么解決緩存擊穿問題的?
- Hytrix的隔離機制有哪些?
- Hytrix常見配置是哪些?
- 做過哪些調優?
- JVM調優、數據庫調優都行!給了個場景,問你怎么調?
螞蟻金服三面:
- 依然是介紹自己數據庫的高可用架構是怎么樣的?
- 如何保證數據庫主從一致性?
- 知道mysql的索引算法嗎?
- 為什么mongodb的索引用了B樹,而mysql用B+樹?
- 用mysql過程中,有遇到什么問題么?
- 生產用的是哪種事務隔離級別,為什么?
- 談一談你對微服務架構的理解?
- 用過哪些RPC框架,講講他們優缺點?
- 用過docker嗎,對容器了解多少?
螞蟻金服四面:
聊人生談理想,HR很ncie,主要交流為什么選擇來阿里,未來的打算職業規劃以及待遇等,交流挺愉快。
面試經驗總結:
技術基礎必須扎實:算法、數據結構、操作系統等,螞蟻金服面試對技術的基礎非常重視,基礎扎實的同學有利于在前兩輪突出重圍。
技術寬度:主要集中在高并發、多線程、分布式架構,大以及常用中間件(緩存等)的選型和比較。
技術原理深入:重點還是提前準備好JVM、多線程高并發這塊。
參與的項目總結:你需要清楚你所做項目的關鍵細節、優化、特點、原理。
很多所用第三方庫&中間件等的原理,即使你不知道,也要有自己的想法能夠說出如何代替實現,比如單點登錄的替代方案。
以上就螞蟻金服后端研發面試題,以下該面試題的部分參考答案。
最后:學習總結——MyBtis知識腦圖(純手繪xmind文檔)
學完之后,若是想驗收效果如何,其實最好的方法就是可自己去總結一下。比如我就會在學習完一個東西之后自己去手繪一份xmind文件的知識梳理大綱腦圖,這樣也可方便后續的復習,且都是自己的理解,相信隨便瞟幾眼就能迅速過完整個知識,腦補回來。下方即為我手繪的MyBtis知識腦圖,由于是xmind文件,不好上傳,所以小編將其以圖片形式導出來傳在此處,細節方面不是特別清晰。但可給感興趣的朋友提供完整的MyBtis知識腦圖原件(包括上方的面試解析xmind文檔)
除此之外,前文所提及的Alibaba珍藏版mybatis手寫文檔以及一本小小的MyBatis源碼分析文檔——《MyBatis源碼分析》等等相關的學習筆記文檔,也皆可分享給認可的朋友!
資料領取方式:戳這里免費下載
可的朋友!
資料領取方式:戳這里免費下載