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

年初得螞蟻垂青(本人非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,底層的研究理解永遠不能停。          大道至簡,知易行難。

歡迎做Java的工程師朋友們加入Java架構解析:923116658

羣內提供免費的Java架構學習資料(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

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