遠程三面螞蟻金服,分享面試經歷總結(已拿offer)

當前環境,很多公司都採取了遠程辦公,遠程面試。有一說一,第一次遠程面試,還是比較緊張的。

一面

HashMap鏈表長度大於8後一定會轉化為紅黑樹嗎如場景是,HashMap初始數組長度為8,只有第一個元素中有值,且有八個都在一條鏈表上,其他數組其他七個位置都是空的,這時候為什麼要轉化為紅黑樹而不是存放到數組中呢?ConcurrentMashMap分段鎖之間加了什麼鎖,讀寫之間是互斥的嗎?三次握手後如果一直不連接會怎樣volatile的實現原理是怎麼樣的,它是怎麼實現從內存中讀取的?lock鎖的使用,它如果是一個接口,它的實現類有哪些,區別是什麼?InnoDB的隔離級別是什麼,它能避免幻讀嗎?怎麼避免的?索引的底層實現是什麼,簡單介紹下。

二面

介紹一下spring中的AOPmybatis和hibernate的區別與優劣redis有哪些數據類型手寫一個單例模式用到的技術棧

三面

如何理解內存洩漏問題?有哪些情況會導致內存洩露?如何解決?怎麼理解強一致性、單調一致性和最終一致性?分佈式鎖有哪些解決方案?如何解決Redi緩存穿透的問題?Redis hash算法用的是什麼?Redis集群方案應該怎麼做?都有哪些方案?

非技術問題

為什麼要用你,你與其他競爭者比較優勢是什麼你有什麼想問我的如果公司需要你加班你有問題嗎

整體的面試感受,面試官都很專業,要求基礎知識很熟悉,面試之前一定要準備後再去面試。LeetCode題目也要刷。

切記面試前一定要刷題和準備,簡歷上的項目不熟悉的千萬不要寫上去,寫上去的項目備好2-3個技術方案。

視頻面試結束之後,我總結了下,問的都不算難,雖然不是很順暢,但問題也都回答上了,就是通過視頻的形式來面試,總感覺怪怪的。本以為已經沒戲了,誰知道5天后收到通知,竟然過了!現在正在考慮要不要辭職過去...

當然,大廠的面試,是一個系統規範化的流程,除了Redis、MQ這些必備品外,每一個簡歷都會有一句Java基礎紮實(有沒有被說中),那麼,到底怎麼樣算Java基礎紮實?

1、集合,例如 List、Map的原理,HashMap基本必問這個不用我多說

2、併發,例如線程、線程池,鎖相關,這些也基本必問

3、JVM,例如垃圾回收器,垃圾回收算法,OOM處理,jvm參數及調優

上面說的這些,是最最最基本的面試標配了。

首先來說下對於簡歷的準備。MQ、Redis這兩個是標配沒跑的了。為啥?你要突出你的核心競爭力,無非圍繞高併發、高可用、海量數據這幾個點出發。

其次,核心競爭力也體現在分佈式解決方案的真實落地實踐,但是這些分佈式解決方案,也很大程度上依賴 Redis和 MQ。

比如分佈式session需要依賴 Redis,分佈式事務最終一致性需要依賴 MQ。也就是說,一份優秀的簡歷,深入 Redis和 MQ這兩個,都是避無可避

以下主要分享面經和個人學習方法,會包括很多PDF文檔,如面試題庫(含答案+解析)、學習筆記、實戰文檔和腦圖等等,均可以免費分享,私信我【面試資料】即可領取~

由於文章的篇幅有限,所以這次的阿里面試題答案整理在了PDF文檔裡




如果簡歷上只是做的項目不同,

但是實質都是簡單的CRUD,那麼沒面試之前,已經給淘汰得差不多了

通過數十家面試的觀察,對於Redis和MQ,考察的方向,其實也是有跡可循的。首先他們的高可用是怎麼保證的,原理是怎麼樣的,幾乎必問(不信你可以自己觀察)。當然還會根據你的回答往下繼續拓展問題,每個人回答得不一樣,自然拓展的問題也不一樣。

以下我會分享一些我個人的學習文檔,有需要的朋友自行選擇獲取:

Java核心知識整理


性能優化(JVM+Tomcat+MySQL)答案解析整理

分佈式(限流+緩存+通訊)答案解析整理:

刷題:

既然是要面試,那麼就少不了刷題,實際上春節回家後,哪兒也去不了,我自己是刷了不少面試題的,所以在面試過程中才能夠做到心中有數,基本上會清楚面試過程中會問到哪些知識點,高頻題又有哪些,所以刷題是面試前期準備過程中非常重要的一點。

很多人感嘆“學習無用”,實際上之所以產生無用論,是因為自己想要的與自己所學的匹配不上,這也就意味著自己學得遠遠不夠。無論是學習還是工作,都應該有主動性,所以如果擁有大廠夢,那麼就要自己努力去實現它。

以上學習資料均免費放送,最後祝願各位順利拿到心儀的offer!

資料獲取方式:轉發+評論我的文章,關注我,然後私信【面試資料】即可免費領取~