五年Java開發經驗,4面阿里成功拿下offer,分享一下個人面經!

2020-10-07 11:00:52

上個月接到阿里的面試通知,也是我近期面試的第一家公司,卻沒想到來了一個開門紅!總共4輪面試,我很快就拿到了阿里的offer,結果出來很快,也給我增添了不少的信心。特分享一下這次阿里的面經,供大家參考。

阿里一面

一面是在上午9點多接到支付寶的面試電話的,因為很期望能夠儘快接到阿里的電話,所以非常興奮。電話接通之後還是非常緊張的,畢竟是第一次這樣的面試。

中間面的問題有些記不清了,下面列出了一面問到的問題:

  • 自我介紹下自己,不超過3分鐘(實際上我的自我介紹不到一分鐘)
  • 你感覺比本科階段自己進步了多少,有哪些進步
  • 研究生期間最大的進步是什麼
  • 你覺得你適合從事哪個方向的開發
  • synchronized與lock的區別,使用場景。看過synchronized的原始碼沒
  • JVM自動記憶體管理,Minor GC與Full GC的觸發機制
  • 瞭解過JVM調優沒,基本思路是什麼
  • 如何設計儲存海量資料的儲存系統
  • 快取的實現原理,設計快取要注意
  • 淘寶熱門商品資訊在JVM哪個記憶體區域
  • 作業系統的頁式儲存
  • volatile關鍵字的如何保證記憶體可見性
  • happen-before原則
  • Lucene全文搜尋的原理

# 一面總結

一面大概面了50多分鐘,從面試官口中得知他是一個老員工,比我大不了多少,總體上還是聊得蠻投機的。最後的三個問題是我問面試官的,在回答我是否還有機會下次面試的時候說:競爭很激烈,不過機會還是有的。
可以看出一面的問題不是很難,但是要得到面試官比較高的評價,還是需要一定的表達能力和對技術比較本質的認識的,如果在回答問題的時候能夠做一些適當的擴充套件,自然會讓面試官對你有不一樣的評價。

我回答問題的遵循一定的步驟:先回答問題本質,在回答具體細節,最後做一些平時程式設計中的擴充套件。這樣,會讓面試官覺得你確實是在這個技術上面下過功夫的。

# 阿里二面

等了將近6天(還以為被刷了呢)終於在第二週的週四接到阿里面試電話,那叫一個激動啊。趕緊找了一個安靜的地方,準備好後開始正式面試。二面的面試官是一個部門主管,自然還是有點小緊張的。這次面試官上來就直接問,沒有一面的面試官那麼好說話。

下面是面試過程中的問題:

  • 自我介紹下自己,不超過3分鐘(我的自我介紹仍然不超過1分鐘)
  • 你說你熟悉並行程式設計,那麼你說說Java鎖有哪些種類,以及區別
  • 如何保證記憶體可見性
  • Http請求的過程與原理
  • TCP連線的特點
  • TCP連線如何保證安全可靠的
  • 為什麼TCP連線需要三次握手,兩次不可以嗎,為什麼
  • AOP的
  • 動態代理與cglib實現的區別(這個,醉得很厲害)
  • 那麼你說說代理的實現原理唄
  • 看過Spring原始碼沒,說說Ioc容器的載入過程吧
  • 瞭解過位元組碼的編譯過程嗎(這個還真不知道)

# 二面總結

二面面試官問的問題都比較直接,答案也是知道就知道,不知道就不知道。這些問題一部分是基礎,一部分是根據你的專業技能的來提問的。

面完後面試官對我的評價是:中規中矩,有機會下次面試。雖說是中規中矩,但聽到面試官說有機會下次面試就感覺這次面試應該過了。
雖說這次面試過了,但是我在思考的是為什麼面試官對我的表現是中規中矩。後面我知道我的回答雖然答到了點子上,但是擴充套件程度不夠,對一些問題的理解缺乏足夠的實踐經驗。面試官告訴我,有時間可以去研究位元組碼的編譯過程,以及JVM調優方面的知識(特別強調這個很重要)。

針對自己的不足,面完後又投入瘋狂的看書寫程式碼的生活中。雖然在面試中有一些回答不出來很正常,但是如果能夠做到出乎面試官的意料,也是面試官對你很重要的加分項。

# 阿里三面(總監面)

三面與二面隔了5天,找了一個安靜的地方開始電話面試。據說總監面會問專案多一點,所以在等待的這幾天中給專案增加了幾個比較肉的點。總監剛上來非常不客氣,最尷尬的是總監那邊老感覺有回聲,因為不好意思提就忍了。

下面是三面遇到的問題:

  • 自我介紹,不超過3分鐘(這次好像時間更久了,也就2分鐘多點)
  • 說一下你對哪個專案比較熟悉
  • 為什麼做這個專案
  • 專案採用了什麼架構,資料庫如何設計的
  • 資料庫由哪些表,為什麼有這些表
  • 主要有哪些核心模組,模組之間如何通訊的
  • session放在哪裡
  • 如何儲存對談狀態,有哪些方式、區別如何
  • 分散式session如何管理,你有哪些方案
  • 學過資料結構和演演算法嗎(當然),你說說二分搜尋的過程
  • 說一下快排的過程,寫一下虛擬碼
  • 瞭解哪設計模式,舉例說說在jdk原始碼哪些用到了你說的設計模式

# 三面總結

本以為三面是交叉面,沒想到是阿里的總監面試。由於具體的技術問題在前兩輪面試中已經問過了,所以三面後不會有具體的技術問題,總結來看,對自己做過的專案一定要深入,包括使用使用到的技術原理、為什麼要使用這些技術。

針對專案,面試官關注的無非以下幾點:

1.專案中某個比較重要的點是如何實現的(需要深入技術的原理)

2.遇到的最大困難是什麼(有哪些),你怎麼解決的?

3.如果需要擴充套件某個功能,如何降低系統的耦合度

4.如果針對某個功能進行優化,你會怎麼設計和優化

對於寫在簡歷上面的專案,自己對照上面四個問題進行思考,才會在面試中游刃有餘。因為任何在簡歷中作假的行為,面試官只要詳細問你就露餡了。在聽到面試官說有機會下次面試的時候,心中自然是非常高興的。

HR面(略)

# 總結

認清了自己的短板,自己欠缺的是什麼,確立自己目標。

瘋狂看書、寫程式碼、寫部落格、做專案,每天都在對自己進行總結和反思,正是這樣一個不斷的自我反思與努力的過程中,我得到了真正的成長與進步。也是這段經歷讓我能夠面對阿里技術面試官的提問應答自如,從而順利拿到阿里的offer。

最後

面完之後,我心飛揚,分享一下備戰大廠的面試資料和學習資料等等,

有需要的朋友請轉發+關注,然後新增我的VX(tkzl6666)即可獲得免費領取方式!

 

一份Java面經(PDF)

這份面經除了一些大廠必問知識點之外,還有很多大廠優質面經場景,非常不錯。

大廠面試果然名不虛傳,螞蟻三面涼經,真的是“太難了”

 

大廠面試果然名不虛傳,螞蟻三面涼經,真的是“太難了”

 

收集整理的面試題彙總(含答案)

大廠面試果然名不虛傳,螞蟻三面涼經,真的是“太難了”

還有就是Java大佬馬士兵講的多執行緒與高並行和JVM精講40集視訊,這兩個知識幾乎是是面試必問點。