螞蟻金服中間件二號機
一面:
- 講一下ArrayList和linkedlist的區別,ArrayList的擴容方式,擴容時機。
- NIO瞭解麼,講一下和BIO的區別,AIO呢。阻塞,非阻塞,異步。具體。
- 你說了解Tomcat的基本原理,瞭解的是哪一部分,基本架構,connector和container
二面:
- Spring的bean如果要在實例化過程中修改其某一個成員變量,應該怎麼做呢。不通過構造方法,並且AOP也並不能實現。
- Tomcat的類加載器瞭解麼,回答不瞭解只瞭解Java的類加載器。
- 自定義類加載器怎麼實現,其中哪個方法走雙親委派模型,哪個不走,不走的話怎麼加載類(實現findclass方法,一般用defineclass加載外部類),如何才能不走雙親委派。(重寫loadclass方法)
- 布隆過濾器瞭解麼,講了ip地址過濾的布隆過濾器實現。
- 聽說你項目用過docker,講一下docker的實現原理,說了虛擬機一般要對內核進行虛擬化,docker則用cgroup和namespace分別進行硬件和命名空間的隔離。
螞蟻財富面經(1+2+交叉+HR)
跟這邊的部門主管說了一下之前面試的情況,然後他幫忙催了下進度。
一面:
- 數據庫萬級變成億級,怎麼處理。分庫分表,分片規則hash和取餘數。使用mycat中間件實現。
- redis這種nosql和mysql有什麼區別,講了一遍redis
- Spring瞭解不,用到了哪些設計模式,說了四個,單例,工廠,代理,觀察者,模板其實也算。
- web請求的過程,講了瀏覽器到http服務器的過程,再講了mvc的請求處理過程。
二面:
沒有二面,好像說是跳過了一輪,直接技術主管面。
三面:
- 項目中的多線程,爲什麼用chm,還有什麼可以避免併發問題。
- 平時在看什麼,寫什麼博客,我說分佈式,關注什麼內容,大後端,Hadoop生態。
- dubbo的服務容錯怎麼做,怎麼知道服務器宕機了 zk的心跳機制維持服務器連接
交叉面:
隔壁部門的技術主管,問了一道算法題。。就沒問別的了。。我也是很醉。。。
題目是鏈表的排序,扯了4、5種方案,轉成數組,直接排序,拆分再排序,順序連接等等。。然後我表示不能再優化了。他就說沒別的問題了。。。有點吃驚
HR面: