那個陪我打王者的兄弟進了阿里

這一次面經的分享來自很早和我一塊兒打王者的兄弟,爲啥印象這麼深入呢,由於他魯班賊6,以致於我單獨給他存了個備註。mysql

這一次歷時兩個月,他拿到了一大堆的Offer,恭喜他拿到了心儀的阿里Offer。linux

按照慣例,固然是邀請分享一波面經了。面試

不過這一次是我看見面經裏整理的最完善的了,幾乎不須要我作什麼修改就能夠發出來了,再次感謝他的分享。redis

百世物流專場

一面

  1. 線上SQL調優經驗。調優的慣用思路。
  2. 索引爲何採用B+樹,而不用B樹,紅黑樹。
  3. 項目中MQ應用場景,如何防止消費丟失,重複消費如何解決?
  4. JVM 類加載機制(雙親委派)。CMS垃圾回收過程。
  5. 項目中的設計模式的使用。
  6. 如何提高接口的響應時間?
  7. MyBatis框架緩存說一下。
  8. 如何本身實現一個鎖。(回答時候 基於AQS)
  9. Redis 掛了怎麼解決?(增長本地緩存)
  10. 網絡的七層模型。每層的做用?(回答時候,我直接說了我是基於五層模型的。)算法

    • 三次握手的過程,爲何三次?
    • 爲何出現ip?
    • HTTPS 發送請求的過程。
  11. Eureka 調優如何調的?自我保護模式。
  12. 分佈式事務的流程?(LCN)
  13. 限流的使用,原理是什麼?常見限流的算法有哪些?限流以後的拒絕策略。

二面

  1. 手撕實現一個多叉樹,遍歷打印。
  2. 手撕單例。
  3. 死鎖的產生。
  4. 如何預防死鎖,OS如何作的?MySQL如何作的?
  5. 如何在代碼編寫時候避免死鎖?
  6. hashmap。
  7. 什麼是高內聚低耦合。
  8. 項目中的開放封閉原則如何實現的,如何自定義Bean。
  9. bean的循環依賴如何解決?
  10. MySQL索引實現原理。爲啥快?

三面

  1. 爲何離職?
  2. 如今薪資?指望薪資?
  3. 介紹業務,你認爲的核心是什麼?
  4. 有什麼想問個人。

光雲科技

一面(30分鐘)

  1. 項目中解決過什麼問題?
  2. 數據庫事務ACID是如何實現的?
  3. mysql 如何解決死鎖的?
  4. 分佈式鎖的使用sql

    • 爲何使用Redisson?
    • Redisson 掛了一臺怎麼辦?
    • redis爲何能夠實現鎖?
    • 分佈式鎖還有其餘的方式嗎?
  5. redis 持久化
  6. 分庫分表數據庫

    • 爲何分庫分表?
    • 遇到過什麼問題嗎?
  7. 講一下你理解的CAP編程

    • 讓你設計一個系統,按照CAP理論你會怎麼設計?
  8. MQ用過嗎?設計模式

    • 技術選型,爲何選擇RocketMQ?
    • 線上有沒有遇到過 向MQ寫入消息失敗的狀況?
    • RocketMQ 消費者 發送消息失敗怎麼辦?(放redis,若是redis掛了怎麼辦?)
    • RocketMQ 消息堆積怎麼辦?
  9. dubbo + zk數組

    • dubbo 爲何用zk 不用nameservice?
    • zk 掛了 dubbo 還能調用嗎?重啓以後還能調用嗎?
  10. 有什麼要問個人?

二面(40分鐘)

兩個面試官
  1. 說一下項目中秒單模塊的優化。

    • 帶寬大是什麼概念?
    • 考慮使用同一機房的機器局域網嗎?若是走局域網的話,網絡如何走的?
  2. 聊一下MQ

    • MQ寫入消息失敗的狀況如何處理?(和一面的問題同樣,我直接說出瞭解決方案,redis,本地內存)
    • 生產者發送消息的幾種方式,還有其中的差異。
  3. Nginx聊一下

    • Nginx 爲何那麼快?(沒看過,可是我猜想用的epoll)
    • 說一下linux 常見的IO模型。(5種)
    • epoll的邊緣觸發 和 水平觸發瞭解嗎?
    • epoll的缺點說一下。
  4. MySQL

    • 畫一下MySQL的架構圖。
    • 線上MySQL CPU報警了,如何快速鎖定問題而且解決?
    • 一樣一條查詢語句,有時候快有時候慢,什麼緣由致使的?(刷髒頁 ) 還有什麼?(不會了)
    • 設計一個商品類目的數據庫存儲,查詢的時間複雜讀說一下。如何作優化?(這裏說到本身能想到的最優解決方案)
    • 線上SQL調優通常怎麼調優?
    • 說一下 File Sort。
    • 講一下 MySQL如何排序的?
    • 磁盤+內存排序
    • 什麼狀況會觸發這個?
    • 若是採用磁盤+ buffer 的排序方式 最根本用的什麼排序算法?(歸併排序)
  5. DDD瞭解嗎?
  6. 有什麼想問個人?

三面(30分鐘)

  1. 介紹事業部的業務和產品線。
  2. 問我加入的緣由(併發量高,可以鍛鍊我本身)
  3. 當你遇到工期不夠的時候,你本身認爲的優化尚未作完怎麼辦?
  4. 咱們部門的併發量很大,可是你剛來仍是CRUD,你內心怎麼想的?
  5. 你來了以後你本身想着如何快速的使用新的公司?
  6. 拿了幾個offer了?
  7. 有什麼問個人?

四面 (10分鐘)

HRBP
  1. 介紹一下我的狀況。
  2. 你本身日常本身生活狀態是什麼?
  3. 你作過的項目中你最有成就感的一個是哪一個?爲何?
  4. 介紹了團隊的狀況。

五面(10分鐘)

招聘的HR。
  1. 指望薪資。
  2. 爲何加入咱們。
  3. 離職緣由
  4. 入職時間。

來將來科技

一面(40分鐘)

  1. 介紹項目,項目中遇到的問題。

    • 秒單的優化。Redis 掛了怎麼辦?
    • MQ如何防止丟失的?
    • 爲何RocketMQ採用NameServer
  2. 線上OOM如何觸發的?如何快速找到問題的?
  3. 線上遇到的SQL慢查詢問題?

    • 如何快速鎖定問題的?
    • 如何作的優化?
  4. 若是讓你設計一個相似於Dubbo這種RPC遠程調用框架你如何設計?
  5. 說一下你理解的線程安全~

    • 線程安全的方式?
    • 除了加鎖還有什麼方式?(單線程的線程安全 ,我回答的redis ,這裏應該回答到 ThreadLocal)
    • ThreadLocal 用過嗎?用來作什麼?他的本質思想?有什麼注意事項?他保證線程安全的方式是什麼緣由?
  6. 項目中設計模式的使用

    • 策略模式
    • 模版方法模式
  7. Redis 爲何那麼快?

    • 講一下常見的IO模型。
    • 用主從redis 作鎖能夠嗎?有什麼問題?
  8. 都學習過什麼知識,閱讀哪些源碼?你剛纔說的你源碼讀了就忘 你是怎麼解決的?(畫流程圖,多讀幾遍)
  9. 有什麼想問個人?

二面(30分鐘)

  1. 畫一下項目的業務架構圖。
  2. 在項目中遇到過什麼問題?
  3. 你在項目中解決過什麼問題?
  4. 日常如何學習的?

大搜車

一面(60min)

  1. 你認爲的技術成長是什麼樣子的?
  2. 介紹最拿手的項目

    • 介紹項目的架構。
    • 你以爲你項目中比較優秀的點在哪裏?
    • 大家項目的架構是什麼?
    • 多少個節點?
    • 講一下大家數據流的流向。
  3. 講一下你Eureka 線上如何作的優化?

    • 註冊中心還了解其餘的嗎?
    • 講一下Eureka 和 ZK 的區別是什麼?
    • Nacos 的原理說一下
  4. MySQL

    • 線上語句的優化?
    • 講一下優化的流程。
    • 索引爲何快?
    • 講一下B+樹。
    • 紅黑樹爲何不能用?
    • 紅黑樹和AVL樹的區別?
    • 紅黑樹最多通過多少次旋轉?(忘記了)
  5. 自定義Bean容器 如何作的設計?

    • 若是讓你優化這種設計 你如何優化?
    • 自定義註解能夠實現嗎?(這裏不會,不知道咋實現)
  6. JVM

    • 線上的OOM如何排查的?
    • 若是線上沒有OOM,可是個人應用吞吐量忽然降低,這個時候你猜想一下什麼緣由?(Full GC)
    • 講一下CMS 和 G1
    • G1的最大優勢是什麼?
  7. Redis

    • 介紹一下線上redis的使用。
    • redis 掛了怎麼辦?
    • 如何保證 本地緩存 和 redis 還有mysql 的數據一致性
    • 延遲雙刪的策略。
    • redis 的緩存穿透如何解決?
    • 布隆過濾器 如何實現的?
    • 10W 數據 和1W數據 布隆過濾器的長度是不是變化的?不變的話是多大?(這個要結合偏差率來回答)
  8. ConcurrentHashMap 如何能保證線程安全的?

    • 什麼是線程安全?
    • HashMap 線程不安全表如今哪裏?(擴容時候,多線程是不安全的)
    • HashMap 數組的長度爲何是2的次方?
    • 說一下擴容的操做。
    • 計算數據落在hash 槽的時候不用取模用的位運算是如何計算的?(忘記了 ,這裏是 (數組長度 - 1 & 哈希值)))
  9. 有什麼要問個人?

婚禮紀

一面(60分鐘)

  1. 介紹一下你項目中遇到的問題,你是如何解決的?

    • 線上SQL調優,問題的解決。
    • 常見的SQL優化方案
    • Eureka 的參數調優怎麼調的?
    • Ribbon 遠程調用的時候 用的緩存 是和Eureka Client 是同一份嗎?
    • 若是保證上線新的服務時,老得服務被及時的下線?(手動下線)
    • 熔斷如何作的?
    • 講一下他熔斷的原理
    • callback 同步仍是異步?
  2. SpringBoot

    • 說一下自動裝配的機制
    • 多個Bean 例如配置多個 DataSource Springboot 會優先裝載那個?
  3. 一個餘額的模塊,更新餘額和插入流水的順序如何作?(均可以啊,只要在一個事務就行)

    • 如何保證餘額模塊,查詢出來去作修改這個操做的數據安全。(代碼中加鎖,數據庫 for update 或者一個 update語句或者使用樂觀鎖機制在數據庫中增長版本號)
    • 如何提升接口的響應速度?
  4. MQ

    • RocketMQ 爲何那麼快?(零拷貝是關鍵)
    • MQ持久化機制說一下。
  5. MySQL

    • 一條SQL between and ,和 in 的區別。
    • 惟一索引和普通索引如何選擇?
    • 講一下索引下推的過程。

銀泰

一面(60分鐘)

  1. 介紹一下你作過最複雜的項目和線上解決過的問題。

    • SQL調優,OOM,秒單優化。
    • 你對這個項目作過的最大貢獻是什麼?
    • 這個項目帶給你哪些挑戰和成長了?
  2. 如何保證系統的穩定性?

    • 限流,降級熔斷,多節點,報警信息。
    • 限流算法有那些?
    • 令牌桶設置爲10 表明 QPS最大是10嗎?
    • 如何選擇集羣限流和單體限流?(都用上)
    • 熔斷降級區別是什麼?
    • 除了這些你還有什麼想要補充的嗎?
  3. 分佈式事務

    • 大家項目中的解決方案
    • 說一種你認爲QPS 最高的分佈式事務的解決方案。
  4. redis

    • 項目中redis用來作什麼了?
    • redis 還能幹嗎。(說了一下五種數據結構的用途,還有分佈式鎖。)
    • redis 單線程爲啥快?多線程會有哪些問題?
    • 分佈式鎖聊一下。
    • redis 如何實現 可重入鎖?
  5. MQ

    • MQ在項目中的用途。
    • 消息寫不進去怎麼辦?
    • 消息消費不了怎麼辦?
    • 消息什麼狀況下消息會出現丟失的狀況?
    • 何時消息會出現從新投遞的狀況。
    • 順序消息如何保證? 若是不寫入同一個queue如何保證消息順序消費?
    • RocketMQ 爲何快?(mmap 和 sendfile 區別,DMA getter 機制的引入)
  6. 分庫分表瞭解過嗎?如何分庫分表?
  7. DDD 瞭解過嗎?
  8. 有什麼想問個人?

有贊

一面(80分鐘)

此次面試主要分爲3部分,時間約1個小時。
  1. HashMap

    • 講一下你理解的HashMap。
    • HashMap 查詢的複雜度爲O(1) 是如何實現的。(由於數組在內存中存儲是連續的內存空間)
    • 線程安全嗎?線程不安全表如今那裏?
  2. 線程安全的的map

    • 說一下JDK的線程安全的Map?
    • 分別如何實現的線程安全的?
    • 你理解的線程安全是什麼樣子的?如何實現線程安全?(鎖,變量線程私有化)
  3. 線程池

    • 講一下線程池的原理。
    • 大家線上線程池的配置,爲何這麼配置?
    • 計算密集型如何配置線程池的參數,爲何這麼配置?
    • 如何實現動態配置線程池?
  4. MySQL

    • 講一下MySQl的架構
    • 事務的ACID 分別是如何實現的?
    • 講一下你理解的MVCC(高低水位和當前讀的理解)
  5. SQL調優

    • 咱們通常SQL調優在調什麼?讓優化器選擇正確的索引。
    • 你簡歷項目中線上調優的經歷 分享一下。什麼緣由致使的線上事故,如何快速發現和解決的?
    • 從此次線上事故,你獲得了什麼經驗了嘛?(須要提早儲備咱們的知識,當發生了問題的時候,咱們才能夠快速的鎖定和解決問題)
  6. redis

    • 緩存異常狀況如何處理?
    • 熱key的問題處理。
    • 你在線上會作兜底方案嗎?
    • 開發週期不夠怎麼辦?(週末加班也要完成該問題)
  7. 分佈式事務

    • 大家線上分佈式事務的解決方案是什麼?
    • 你有沒有思考過大家的 解決方案存在必定的問題?如何優化?
    • 線上的補償機制如何作的?
  8. RocketMQ

    • 說一下RocketMQ的事務消息。
    • RocketMQ 大家線上如何保證消息不丟失的。
  9. 分庫分表。

    • 大家業務分庫分表了嗎?(沒有,可是我知道解決方案)
  10. DDD

    1. 講一下你理解的DDD。(剛開始學,說了一些大概的概念和一些名詞)
  11. 介紹一下你的項目(說了一堆以後,面試官不問了)
  12. 如何學習的?
  13. 有什麼想問個人?

二面 (60分鐘)

現場面,面試官很熱情。這一面完徹底全是業務。項目的細節扣的很細。
  1. 畫一下大家項目的架構圖。

    • NGINX負載均衡策略有哪些?
    • 說一下你項目中如何優化Eureka的參數的?各個註冊中心的比較?
    • 你如何理解CAP的?
  2. MQ

    • Kafka和RocketMQ的比較?
    • RocketMQ的事務消息。
    • RocketMQ 如何實現順序消費?大家項目有這種需求嗎?
  3. 畫一下你負責模塊主要的時序調用圖。
  4. 項目中數據庫表的設計。
  5. 大家項目線上遇到過什麼問題?
  6. 你在項目中解決過什麼問題?
  7. 你項目中遇到過最大的挑戰是什麼?
  8. ES 有沒有使用過?(沒有)
  9. 畫出你認爲的電商交易鏈路。
  10. 講一下你認爲的DDD。
  11. 你有什麼想問個人?

三面(30分鐘)

  1. 你項目中解決過什麼問題?給你帶來了哪些思考?
  2. 除了被動的解決一些問題,你主動解決過什麼問題?
  3. 日常如何學習的?
  4. 爲何選擇有贊?

HR(20分鐘)

  1. 爲何會選擇內推有贊?
  2. 是什麼讓你在上家公司呆了三年的?
  3. 你工做以後最大的挑戰是什麼?
  4. 你如何理解你面試的部門作的業務的?
  5. 日常有在學習嗎?如何學習的?
  6. 拿了哪些offer了?

菜鳥

一面(40分鐘)

先開始聊項目,項目中每一個點都扣的特別特別細。
  1. 介紹項目。

    第一個項目

    • 講一下你項目中架構。(單體)
    • 項目的QPS和數據量。
    • 你項目中作了什麼?拿到了什麼結果?
    • 解決項目中的問題帶給你的思考。
    • 若是流量擴大100倍如何解決?
    • 有了解決方案了爲何不去作?
    • 大家如何保證你項目的穩定性的?

    第二個項目

    • 說一下大家項目的業務架構和應用架構。
    • 當時架構爲何作?
    • 項目的QPS和數據量。
    • 仍是那個問題流量激增100倍,你認爲大家這個系統哪裏最早出現瓶頸?如何解決?
    • 大家這個業務是行業Top3,發展的很好,爲何不按照你的優化思路去優化來提高他的穩定性?
    • 說一下大家項目中分佈式事務和分佈式鎖的解決方案。
  2. 線程安全

    • syn的鎖升級。
    • 經常使用的線程安全的容器有哪些?
  3. Spring IOC 和 AOP
  4. RocketMQ

    • 架構。
    • 消息防止丟失如何作的?
    • 事務消息說一下。
    • 讓你設計一個MQ你如何設計?
  5. 有什麼想問個人嗎?
  6. 拿了哪些offer了?有贊和咱們這邊你如何選擇?

二面(筆試)

阿里的伯樂平臺(至關於白板),面試官出題,須要和麪試官通話的狀態下寫代碼,你寫的面試官能夠實時看到。語法不用正確,只要邏輯沒有太大的問題就行。
  1. 實現一個雙向鏈表的insert,find,delete的方法。

    • 分別的複雜度是多少?(這裏注意,插入頭尾和按照index插入的時間複雜度不同)
  2. 優化一下find方法的查詢時間複雜度。跳錶O(logN),哈希表O(1)。

三面(30分鐘)

  1. 項目相關

    • 解決過什麼問題?
    • 如何作到快速鎖定問題的?
    • 如何保證項目的穩定性?
    • 說一下項目的應用架構?
  2. Spring ICO和AOP

    • 註解式事務和編程式事務有什麼差異?
  3. 工做上遇到過的最大挑戰是什麼?
  4. 到如今爲止你生活中遇到過的最大的挑戰是什麼?
  5. 一面面試官說你拿了有讚的offer了?咱們和有贊你會選擇哪個?
  6. 有什麼想問個人?

四面(20分鐘)

大老闆面試,晚上十點多。
  1. 你在項目中的角色是什麼樣子的?
  2. 你認爲計算機相關的 基礎課程重要嗎?你除了經過B站看視頻還有哪些學習路徑?
  3. 你想來阿里想從這裏得到什麼?
  4. 前面面試官說你拿了有讚的offer了,咱們和有贊你會如何選擇?
  5. 你認爲哪些問題我沒有問到?

    • 沒有問技術。(由於我能看到前面的面試記錄,因此都知道他們問了哪些了)
  6. 有什麼想問個人?

    • 對個人建議?

五面

  1. 爲何加入菜鳥?
  2. 你日常除了工做會作一些什麼事情?

好了,看完了你知道了吧,那些榮耀王者的我邀請你的時候不要愛答不理的了啊。

相關文章
相關標籤/搜索