“棄C++從Java”,六個月後五面阿里,定級阿里P6 前言 一面(技術面) 二面(技術面) 三面(技術面) 四面(半個技術面) 五面(HR面) 面試刷題 總結

前言

在接觸 Java 之前我接觸的比較多的語言就是C和C++,對Java語言的學習也有稍有的涉獵。到了今年疫情,在競爭的壓力下,我才選擇正式改行 Java ,到目前爲止接觸Java大概有一年多的時間,所以Java開發水平算不上很好。

剛開始投遞的時候,我並沒有直接就投遞阿里,畢竟心裏還是有一點點小害怕的。於是,我就先投遞了幾個不算大的公司來練手,就是想着刷刷經驗而已或者說是練練手。面了一個月其他公司後,我找了一個博主的朋友幫助內推,就有了後面這次面試。

面試阿里之前我對自己的併發知識不太有信心,就花時間看了幾本併發方面的書籍,網上也找了好多博客來看。

下面簡單的說一下我的這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. 你有什麼問題嗎?

以上問題的答案我已經整理好了,點擊這裏下載!!!

面試刷題

分享這麼些天來收集了一些java面試資料供大家學習,BAT必備面試題含答案(希望對你有幫助)

1、Java基礎

2、JVM

3、多線程併發

4、SSM框架

5、數據庫

6、網絡

7、系統面試題題庫(Java基礎、JVM、Redis、Mysql、Spring、多線程、分佈式、數據庫、設計模式、數據結構與算法等)

以上面試題和答案,點擊這裏下載!!!

總結

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

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

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