5面阿里,終獲offer(Java後端)

作者:ppxyn。本文來自讀者投稿。該文已加入筆主的開源項目——JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識的文檔類項目),地址:https://github.com/Snailclimb... 。覺得不錯的話,記得點個Star。

在接觸 Java 之前我接觸的比較多的是硬件方面,用的比較多的語言就是C和C++。到了大三我才正式選擇 Java 方向,到目前爲止使用Java到現在大概有一年多的時間,所以Java算不上很好。剛開始投遞的時候,實習剛辭職,也沒準備筆試面試,很多東西都忘記了。所以,剛開始我並沒有直接就投遞阿里,畢竟心裏還是有一點點小害怕的。於是,我就先投遞了幾個不算大的公司來練手,就是想着刷刷經驗而已或者說是練練手(ps:還是挺對不起那些公司的)。面了一個月其他公司後,我找了我實驗室的學長內推我,後面就有了這5次面試。

下面簡單的說一下我的這5次面試:4次技術面+1次HR面,希望我的經歷能對你有所幫助。

一面(技術面)

  1. 自我介紹(主要講自己會的技術細節,項目經驗,經歷那些就一語帶過,後面面試官會問你的)。
  2. 聊聊項目(就是一個很普通的分佈式商城,自己做了一些改進),讓我畫了整個項目的架構圖,然後針對項目拋了一系列的提高性能的問題,還問了我做項目的過程中遇到了那些問題,如何解決的,差不讀就這些吧。
  3. 可能是我前面說了我會數據庫優化,然後面試官就開始問索引、事務隔離級別、悲觀鎖和樂觀鎖、索引、ACID、MVVC這些問題。
  4. 瀏覽器輸入URL發生了什麼? TCP和UDP區別? TCP如何保證傳輸可靠性?
  5. 講下跳錶怎麼實現的?哈夫曼編碼是怎麼回事?非遞歸且不用額外空間(不用棧),如何遍歷二叉樹
  6. 後面又問了很多JVM方面的問題,比如Java內存模型、常見的垃圾回收器、雙親委派模型這些
  7. 你有什麼問題要問嗎?

二面(技術面)

  1. 自我介紹(主要講自己會的技術細節,項目經驗,經歷那些就一語帶過,後面面試官會問你的)。
  2. 操作系統的內存管理機制
  3. 進程和線程的區別
  4. 說下你對線程安全的理解
  5. volatile 有什麼作用 ,sychronized和lock有什麼區別
  6. ReentrantLock實現原理
  7. 用過CountDownLatch麼?什麼場景下用的?
  8. AQS底層原理。
  9. 造成死鎖的原因有哪些,如何預防?
  10. 加鎖會帶來哪些性能問題。如何解決?
  11. HashMap、ConcurrentHashMap源碼。HashMap是線程安全的嗎?Hashtable呢?ConcurrentHashMap有了解嗎?
  12. 是否可以實習?
  13. 你有什麼問題要問嗎?

三面(技術面)

  1. 有沒有參加過 ACM 或者他競賽,有沒有拿過什麼獎?( 我說我沒參加過ACM,本科參加過數學建模競賽,名次並不好,沒拿過什麼獎。面試官好像有點失望,然後我又趕緊補充說我和老師一起做過一個項目,目前已經投入使用。面試官還比較感興趣,後面又和他聊了一下這個項目。)
  2. 研究生期間,做過什麼項目,發過論文嗎?有什麼成果嗎?
  3. 你覺得你有什麼優點和缺點?你覺得你相比於那些比你更優秀的人欠缺什麼?
  4. 有讀過什麼源碼嗎?(我說我讀過 Java 集合框架和 Netty 的,面試官說 Java 集合前幾面一定問的差不多,就不問了,然後就問我 Netty的,我當時很慌啊!)
  5. 介紹一下自己對 Netty 的認識,爲什麼要用。說說業務中,Netty 的使用場景。什麼是TCP 粘包/拆包,解決辦法。Netty線程模型。Dubbo 在使用 Netty 作爲網絡通訊時候是如何避免粘包與半包問題?講講Netty的零拷貝?巴拉巴拉問了好多,我記得有好幾個我都沒回答上來,心裏想着涼涼了啊。
  6. 用到了那些開源技術、在開源領域做過貢獻嗎?
  7. 常見的排序算法及其複雜度,現場寫了快排。
  8. 紅黑樹,B樹的一些問題。
  9. 講講算法及數據結構在實習項目中的用處。
  10. 自己的未來規劃(就簡單描述了一下自己未來的設想啊,說的還挺誠懇,面試官好像還挺滿意的)
  11. 你有什麼問題要問嗎?

四面(半個技術面)

三面面完當天,晚上9點接到面試電話,感覺像是部門或者項目主管。 這個和之前的面試不大相同,感覺面試官主要考察的是你解決問題的能力、學習能力和團隊協作能力。

  1. 讓我講一個自己覺得最不錯的項目。然後就巴拉巴拉的聊,我記得主要是問了項目是如何進行協作的、遇到問題是如何解決的、與他人發生衝突是如何解決的這些。感覺聊了挺久。
  2. 出現 OOM 後你會怎麼排查問題?
  3. 自己平時是如何學習新技術的?除了 Java 還回去了解其他技術嗎?
  4. 上一段實習經歷的收穫。
  5. NginX如何做負載均衡、常見的負載均衡算法有哪些、一致性哈希的一致性是什麼意思、一致性哈希是如何做哈希的
  6. 你有什麼問題問我嗎?
  7. 還有一些其他的,想不起來了,感覺這一面不是偏向技術來問。

五面(HR面)

  1. 自我介紹(主要講能突出自己的經歷,會的編程技術一語帶過)。
  2. 你覺得你有什麼優點和缺點?如何克服這些缺點?
  3. 說一件大學裏你自己比較有成就感的一件事情,爲此付出了那些努力。
  4. 你前面跟其他面試官講過一些你做的項目吧?可以給我講講嗎?你要考慮到我不是一個做技術的人,怎麼讓我也聽得懂。項目中有什麼問題,你怎麼解決的?你最大的收穫是什麼?
  5. 你目前有面試過其他公司嗎?如果讓你選,這些公司和阿里,你選哪個?(送分題,回答不好可能送命)
  6. 你期望的工作地點是哪裏?
  7. 你有什麼問題嗎?

總結

  1. 可以看出面試官問我的很多問題都是比較常見的問題,所以記得一定要提前準備,還要深入準備,不要回答的太皮毛。很多時候一個問題可能會牽扯出很多問題,遇到不會的問題不要慌,冷靜分析,如果你真的回答不上來,也不要擔心自己是不是就要掛了,很可能這個問題本身就比較難。
  2. 表達能力和溝通能力太重要了,一定要提前練一下,我自身就是一個不太會說話的人,所以,面試前我對於自我介紹、項目介紹和一些常見問題都在腦子裏練了好久,確保面試的時候能夠很清晰和簡潔的說出來。
  3. 等待面試的過程和麪試的過程真的好熬人,那段時間我壓力也比較大,好在我私下找到學長聊了很多,心情也好了很多。
  4. 面試之後及時總結,面的好的話,不要得意,儘快準備下一場面試吧!

我覺得我還算是比較幸運的,最後也祝大家都能獲得心儀的Offer。

專注Java知識和麪試技能分享!我已經整理好了一份Java 學習必備的書籍+視頻+文檔彙總,內容比較多,你可以在公衆號後臺回覆關鍵“1”,我會免費無套路把這些都給你。

我的公衆號

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