朋友面試阿里雲慘遭滑鐵盧。幸獲華爲內推機會,四面喜提offer。

上個月,哥們從某小廠離職,轉投阿里雲,簡歷優秀,很順利地拿到了面試通知,但之後的進展卻讓哥們懷疑人生了,或者說讓哥們懵逼的是,面試阿里雲居然第一面就被吊打?讓哥們開始懷疑自己,是不是這些年工作下來,自己沒有一丁點的進步呢?

幸運的是,經過他朋友推薦,去面試了華爲,面試華爲的過程極爲順利,很快就拿到了offer。這讓哥們更弄不懂了,4面拿華爲offer的水平,面試阿里雲居然一面就被吊打?

索性,哥們想分享一下這次的面試經歷,讓各位老鐵好好幫他參考參考,出一出主意!

另外,我下文還整理了一些哥們的複習資料,有需要的朋友轉發並關注,加我VX【tkzl6666】即可獲得免費領取方式!

阿里雲一面涼經(一面竟然就問了一個半小時,什麼情況?)

這次一面感覺是在打心理戰,哥們自己的心裏防線基本是被擊潰,面到懷疑人生的程度,所以過程感覺不是太好,很多題哥們自己也感覺沒答好,要麼答得“缺胳膊少腿”,要麼就是“畫蛇添足”。

  1. 先是聊項目,從項目的架構設計到部署流程。

  2. Java容器有哪些?哪些是同步容器,哪些是併發容器?

  3. ArrayList和LinkedList的插入和訪問的時間複雜度?

  4. Java反射原理, 註解原理?

  5. 新生代分爲幾個區?使用什麼算法進行垃圾回收?爲什麼使用這個算法?

  6. HashMap在什麼情況下會擴容,或者有哪些操作會導致擴容?

  7. HashMap push方法的執行過程?

  8. HashMap檢測到hash衝突後,將元素插入在鏈表的末尾還是開頭?

  9. 1.8還採用了紅黑樹,講講紅黑樹的特性,爲什麼人家一定要用紅黑樹而不是AVL、B樹之類的?

  10. https和http區別,有沒有用過其他安全傳輸手段?

  11. 線程池的工作原理,幾個重要參數,然後給了具體幾個參數分析線程池會怎麼做,最後問阻塞隊列的作用是什麼?

  12. Linux怎麼查看系統負載情況?

  13. 請詳細描述springmvc處理請求全流程?

  14. 講一講AtomicInteger,爲什麼要用CAS而不是synchronized?

  15. 查詢中哪些情況不會使用索引?

  16. 數據庫索引,底層是怎樣實現的,爲什麼要用B樹索引?

  17. Mysql主從同步的實現原理?

  18. MySQL是怎麼用B+樹?

  19. 談談數據庫樂觀鎖與悲觀鎖?

  20. 有使用過哪些NoSQL數據庫?MongoDB和Redis適用哪些場景?

  21. 描述分佈式事務之TCC服務設計?

  22. Redis和memcache有什麼區別?Redis爲什麼比memcache有優勢?

  23. 考慮redis的時候,有沒有考慮容量?大概數據量會有多少?

  24. 談談分佈式鎖、以及分佈式全局唯一ID的實現比較?

  25. 集羣監控的時候,重點需要關注哪些技術指標?這些指標如何優化?

  26. 從千萬的數據到億級的數據,會面臨哪些技術挑戰?你的技術解決思路?

  27. 最近兩年遇到的最大的挫折,從挫折中學到了什麼?

  28. 最近有沒有學習過新技術?

華爲四面:3輪技術面+HR面(華爲真經,值得參考)

華爲面試過程很順,一面問得比較基礎,所以哥們整個人都還挺自信的一個狀態,面試官也全程是一個比較“和藹”的問題方式,所以比較輕鬆,因此面試得順利,拿offer也快。以下是哥們華爲4面的技術題,不包括HR面。

華爲技術一面:

  1. 簡單說一下面向對象的特徵以及六大原則

  2. 談談final、finally、finalize的區別

  3. Java中==、equals與hashCode的區別和聯繫

  4. 談談Java容器ArrayList、LinkedList、HashMap、HashSet的理解,以及應用場景

  5. 談談線程的基本狀態,其中的wait() sleep() yield()方法的區別。

  6. JVM性能調優的監控工具瞭解那些?

  7. 簡單談談JVM內存模型,以及volatile關鍵字

  8. 垃圾收集器與內存分配策略

  9. 垃圾收集算法

  10. MySQL幾種常用的存儲引擎區別

  11. 數據庫的隔離級別

  12. 5億整數的大文件,怎麼排?

華爲技術二面:

  1. Java內存模型

  2. full gc怎麼觸發?

  3. gc算法

  4. JVM回收策略

  5. ClassLoader原理和應用

  6. 高吞吐量的話用哪種gc算法

  7. ConcurrentHashMap和HashMap

  8. volatile的底層如何實現,怎麼就能保住可見性了?

  9. 有參與過開源的項目嗎?

  10. 線程池原理,拒絕策略,核心線程數

  11. 1億個手機號碼,判斷重複

  12. 線程之間的交互方式有哪些?有沒有線程交互的封裝類 (join)?

華爲技術三面:

  1. 兩次點擊,怎麼防止重複下訂單?

  2. 數據庫表設計,索引

  3. Redis的緩存淘汰策略、更新策略

  4. dubbo、netty、RPC介紹原理

  5. 限流算法

  6. zk掛了怎麼辦?

  7. 分佈式鎖的實現方式,zk實現和Redis實現的比較

  8. 秒殺場景設計,應付突然的爆發流量

  9. 分佈式數據一致性

  10. 一致性哈希

  11. 消息隊列原理介紹

  12. 註解的原理

  13. 數據庫原理,數據庫中間件,索引優化

  14. ioc原理、aop原理和應用

  15. 大數據相關,MapReduce

  16. Docker的原理

大廠面試題答案

6c240107f9d14c26b53fc35ff418952a


6ae3289c4d5b4368997e693332d72e44


d1ba93a3cbdf4f06b9f380b58b2c7482


實際上,哥們並不是一個幸運的人,而是一個努力的人,今天的這些,也全是靠哥們的努力得來的,儘管阿里雲一面就涼,但能進入華爲,也算是哥們多年的累積,以下是哥們分享的個人的一個學習方法和經驗總結。

學習方法及經驗總結

以下所展示的全部資料,均可以免費分享 轉發+關注,然後加我VX【tkzl6666】免費領取

(1)多刷題

自己多刷一些面試題是非常重要的,即使是在自己不需要面試的情況下,也要經常瞭解現在的大廠小廠面試都會問一些什麼?現在比較流行的技術是什麼等等諸如此類。那麼哥們是如何刷題的呢?刷題主要分爲Java技術以及算法兩大類,蒐集了目前比較新的一些題冊,包括【Java核心知識】以及【算法刷題】,如算法方面就有LeetCode。

Java 面試必備核心知識點:

ceedb86522634aa0b06175173f2c2808


算法刷題LeetCode:

4ba331b877d9419a9fd7c408569eefcf


(2)多看看技術牛的實戰書

實際上很多人目前的一個狀態是缺乏實戰經驗,或者說是不知道該如何上手實戰。那麼,看一些技術比較過硬的大牛寫的實戰書籍對自己是很有好處的,多少能夠學習到一些實戰經驗。目前我手上整理到的實戰書籍也算是比較全面,包括Spring全家桶、JVM、併發編程技術、Redis相關、MySQL調優、Tomcat、ZooKeeper等高級技術。

a5175e8770bb473b83e506514b58bd0a


23f23dbf40d74fc7a4ddb47ab7248194


(3)多交流,多思考

最後要強調的重點就是——多交流,多思考。現在很多程序員陷入一個怪圈,整天只會在辦公室裏機械的工作,實際上程序員要想有很大很明顯的進步,交流是少不了的。那麼怎麼結識比自己厲害的技術牛呢?實際上渠道有很多,哥們個人的做法是:①看一些技術直播,在直播間交友;②加一些技術性的交流羣,多交流問題;③參加一些線下活動,如面基、研討會等等。

寫在最後

學習如攀登,雖然有身心的疲憊,但更有沿途的優美風光,更無論登頂之後的極目遠眺。之後,你總會感嘆曾經的付出是值得的。

以上所展示的面試題也好、學習資料也罷,均可以免費分享給大家,有需要的老鐵請轉發+關注,然後加我VX【tkzl6666】即可。


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