1. 程式人生 > >2018螞蟻金服面試總結(Java方向)

2018螞蟻金服面試總結(Java方向)

2018年8月初得螞蟻垂青(本人非985/211,螞蟻真的不是很在乎學歷!!!),有了一次社招機會,前後經歷三關,隨敗北但受益匪淺,在此與各位朋友分享經歷與心得。

第一關:線上筆試

筆試題內容如下:

說明:
構建一個本地快取,快取的物件是使用者ID以及部分使用者的資訊。
當從快取中獲取某個使用者資料時,如果發現該使用者資料上次更新時間超過30分鐘,則需要更新一次該快取。
 
1.需考慮多執行緒訪問的情況。
2.請不要使用第三方類庫實現。
3.可以新增適當日誌。
4.可以有適當的虛擬碼。
 
補充:UserInfo結構
public class UserInfo {
    private String userId;
    private String userName;
    private String cardNo;
    //省略其它資訊和getter 和setter
}
 
完成下面的程式碼
 
//: TODO 可自行定義需要的變數
 
/**
 * 初始化使用者資訊快取
 */
public void initUserInfoCache() {
    //: TODO 完成此處的程式碼
}
 
/**
 * 根據id從快取中獲取使用者資訊
 */ 
public UserInfo getUserInfoFromCacheById(String id) {
     //: TODO 完成此處的程式碼
}
 
/**
 * 根據id更新快取使用者資訊
 */ 
public void updateUserInfoCache(String id) {
     //: TODO 完成此處的程式碼
}

題目是讓在 考慮多執行緒的情況下實現一個快取,題目相對簡單(經歷過2016的阿里校招線上筆試,簡答題難度至今  記(還)憶(是)猶(不)新(會)!!!),時間上要求寬鬆,24小時內答完即可。

第二關:一輪電話面試

筆試題提交完畢後,大約2天后,收到一個來自於杭州螞蟻金服IP的固定電話,不巧當時正在另外一家單位面試,恰逢一面結束,等待二面的空隙裡,沒辦法,接了電話果然是邀請馬上進行一輪電面。內心是崩潰的...。和麵試官說了暫時不方便,約了半小時後再開始,面試官很爽快的同意了。

一開始依舊是自我介紹,一面提問的問題很多,很雜,涉及面很廣,著重於基礎,共面了55分鐘左右。事後回憶問題如下:

1.jvm記憶體管理和分配
2.Redis
3.資料庫樂觀鎖
3.currenthashmap的缺點
4.資料庫併發
5.dubbo的呼叫模式,序列化
6.事務的最大級別,跨庫?跨表?
7.dubbo上游100萬,下游10萬,如何處理
8.使用者一次請求訪問web的詳細過程(從瀏覽器到web伺服器經歷詳細過程)
9.spring的bean的週期
10.詳細說下參與的專案的架構
11.hashmap 觸發紅黑樹
12.MySQL支援的跨庫事務
...

第三關:二輪電話面試

距離一面過了約一週,二面姍姍來遲。與一面的Java基礎相比,二面更偏重於提問 經歷的專案的架構,以及使用的框架的底層原理。(突破了會用的範圍,理解框架的底層實現原理很重要,但這個很容易忽略!)。內心忐忑的聊了45分鐘左右,結束了二面。

事後回憶二面問題如下:

1.說一說你最近參與的印象最深的專案,專案的架構,用到哪些技術
2.說一說spring容器的實現方式
3.說一說redis快取應用場景
4.說一說eletasic-job與其他job定時任務的區別,以及它的優點是什麼
...

總結:螞蟻還是很看重基礎和對框架的原理的理解程度的,說白了,對使用的技術,要知其然也知其所以然。無論是框架還是JavaAPI,底層的研究理解永遠不能停。           大道至簡,知易行難。