<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          金三銀四跳槽季,美團、字節(jié)、阿里、騰訊面經

          共 6310字,需瀏覽 13分鐘

           ·

          2021-03-13 23:29

          過去幾個月面的幾家大廠,均拿到 offer,最終去了字節(jié)跳動。

          總體感受:

          1. 每個大廠問項目問得特別細,雖然下面的面經都只用了一句話去概括,但在實際面試過程當中,項目這一塊占了整個面試流程的很大一部分,相反純技術問題的占比都比較小。
          2. 面試題幾乎類似,比較簡單,也很常見。

          美團

          通常是兩輪技術面試,一輪 HR 面試,第一面會有一道算法題,有的時候會有三輪技術面試。

          一面

          1. 一道算法題,十分鐘左右時間,要求能正常運行,通過給出的測試用例。
          2. 最近做過的最有挑戰(zhàn)的項目,有哪些難點?
          3. 結合項目細聊系統(tǒng)的設計,根據你的設計提出疑問。
          4. 你們項目中是如何保證數據一致性的?
          5. 代碼在執(zhí)行 SQL 語句時,數據庫連接出現(xiàn)了超時異常,但是你不知道這條 SQL 語句在數據庫中究竟有沒有執(zhí)行成功,這種情況怎么保證數據的一致性?
          6. 你們系統(tǒng)中分布式鎖是如何實現(xiàn)的?(當時回答采用 redis 實現(xiàn),set(key,value,nx,ex,expire))
          7. 上面使用 redis 實現(xiàn)分布式鎖會存在什么問題?
          8. 項目中除了使用 redis 實現(xiàn)分布式鎖,還有哪些使用場景?
          9. redis 的數據持久化機制?如何保證數據不丟失?當 redis 內存滿了以后,內存的淘汰策略?
          10. AQS 實現(xiàn)鎖的原理?與 synchronize 的區(qū)別
          11. MySQL 存儲引擎的區(qū)別?數據庫有哪些隔離級別?
          12. MySQL 索引的數據結構是什么?為什么選擇這種數據結構?
          13. B+Tree 和 B-Tree 有什么區(qū)別?
          14. Reactor 線程模型有哪些?Netty 是如何支持這三種線程模型的?
          15. 多路復用器的實現(xiàn)原理?
          16. epoll 的實現(xiàn)原理?epoll、poll、select 的區(qū)別
          17. JVM 如何進行垃圾回收?標記算法有哪些?垃圾回收算法有哪些?
          18. CMS 垃圾回收器的原理?

          二面

          1. 最近做過的最有挑戰(zhàn)的項目?
          2. redis 和 MySQL 的雙寫一致性問題?你們是如何做的?為什么這樣做?其他的做法會存在什么問題?
          3. 分布式鎖的實現(xiàn)原理
          4. 數據庫有哪些隔離級別?這幾種隔離級別分別解決了什么問題?
          5. MySQL 是如何解決不可重復讀問題的?
          6. MVCC 的實現(xiàn)原理
          7. MySQL 的可重復讀隔離級別下,存在幻讀嗎?為什么?
          8. 數據庫的索引是不是創(chuàng)建得越多越好?為什么?通常創(chuàng)建幾個?
          9. 一張表中對 a、b、c 三個字段分別建立了索引,現(xiàn)在有一條 SQL 語句:select field1,field2 ... from t where a = xx and b=xx and c=xx. 請問這條 SQL 語句會使用到索引嗎?如果會,那么會使用到哪個索引?(回答:只會使用其中一個索引,可能是 a,也可能是 b,還有可能是 c,具體使用哪個索引和表中的數據有關)
          10. 為什么不會同時使用 a,b,c 三個索引?什么是回表?
          11. 聚簇索引和非聚簇索引的區(qū)別
          12. 如何知道一條 SQL 語句使用了哪些索引?(回答:使用 explain 查看)
          13. explain 的結果有哪些列?分別代表什么含義?
          14. 如何查看慢 SQL?
          15. 在 Spring 事務中執(zhí)行多條 SQL 語句時,是對應多個數據庫連接還是一個數據庫連接?(回答:一個連接,多個就無法保證事務了)
          16. 既然是一個連接,Spring 在前后執(zhí)行多條 SQL 時,是如何保證當前線程獲取到同一個連接的?(回答:當時沒想到 ThreadLocal,面試官引導說,如果是你,會怎么實現(xiàn)。后來回答說存在一個 map,key 是當前線程,value 就是數據庫連接,最后靈光一現(xiàn),想到了 ThreadLocal)
          17. ThreadLocal 的實現(xiàn)原理?
          18. 使用 ThreadLocal 需要注意哪些問題?(實際上是問 ThreadLocal 內存泄漏的問題)
          19. Redis 主從復制的原理
          20. MQ 使用過哪些?如何選型?
          21. 使用的是什么 RPC 框架?為什么選擇它?
          22. 線上服務流量猛漲,該如何操作,說下詳細過程?新加服務節(jié)點也可能會導致服務還沒起來,機器就被打爆了,這個時候怎么辦?
          23. 一個場景題:現(xiàn)在有 1000 萬的商家,知道他們的地理位置,當我們進入到 APP 首頁時,如何加載出附近的商家?
          24. 職業(yè)規(guī)劃?為什么選擇在年底前跳槽?

          字節(jié)

          三輪技術面試,一輪 HR 面試,每輪技術面試都會至少有一道算法題。

          一面

          1. 一道算法題
          2. 聊項目,你們的廣告檢索引擎是如何設計的?為什么你們的廣告檢索不使用 ElasticSearch 這樣的搜索組件?
          3. Java 中的鎖有哪些?和 Lock 的區(qū)別
          4. synchronized 的底層實現(xiàn)原理?
          5. AQS 的實現(xiàn)原理?
          6. volatile 的作用和實現(xiàn)原理?
          7. JVM 的垃圾回收算法
          8. GC Roots 有哪些?
          9. 簡述新生代與老年代的區(qū)別?
          10. 類的加載過程?什么是雙親委派機制?
          11. 線程池的實現(xiàn)原理?線程池滿了,再提交任務時會怎么處理?
          12. redis 實現(xiàn)分布式鎖的原理?redis 的分布式鎖有什么問題?lua 腳本熟悉嗎?
          13. redis 中 key 的過期策略是什么?
          14. redis 的持久化機制?AOF 和 RDB 的區(qū)別?
          15. 什么是緩存擊穿、緩存穿透、緩存雪崩?如何處理?
          16. MySQL 數據庫索引的實現(xiàn)原理?
          17. 什么是回表?什么是聯(lián)合索引?什么是最左前綴匹配原則?
          18. MySQL 如何保證高可用?主從復制原理?
          19. Explain 關鍵字的使用。
          20. RocketMQ 的實現(xiàn)原理。
          21. 注冊中心的選型?
          22. Zookeeper 作為注冊中心的實現(xiàn)原理?
          23. Zookeeper 實現(xiàn)分布式鎖的原理?

          二面

          1. 一道算法題
          2. 詳細聊項目經歷
          3. redis 緩存和數據庫數據一致性怎么解決?
          4. 分布式系統(tǒng)中,分布式事務怎么解決?(回答:RocketMQ 的事務消息)
          5. RocketMQ 事務消息的實現(xiàn)原理?你們的項目中是如何通過 RocketMQ 來保證數據一致性
          6. MySQL 為什么使用 B+樹來作索引,對比 B 樹它的優(yōu)點和缺點是什么?
          7. 什么是覆蓋索引?
          8. MySQL 中事務的隔離級別?
          9. SQL 的優(yōu)化經驗?
          10. redis 持久化的機制?如何保證數據不丟失?
          11. redis 的內存淘汰策略?key 的過期策略?
          12. RocketMQ 如何保證數據的可靠傳輸(數據不丟失)?
          13. RocketMQ 中現(xiàn)在堆積了大量消息,該怎么處理?
          14. Netty 的線程模型?主從多線程模型下,線程是如何分工的?
          15. 線程池的實現(xiàn)原理是什么?如何設置線程池的參數?
          16. 對于 CPU 密集型的系統(tǒng),為什么線程個數設置為 CPU 核數+1?為什么要+1?
          17. 對于 IO 密集型的系統(tǒng),為什么線程個數為 2 倍 CPU 核數?為什么是 2 倍,而不是 3 倍、4 倍等等?
          18. RPC 框架的選型?
          19. Motan 是如何實現(xiàn)負載均衡的?
          20. 下一步的工作計劃?為什么?

          三面

          1. 一道算法題
          2. 圖這種數據結構了解嗎?如何判斷圖中是否有環(huán)?
          3. 如何找出圖中所有的環(huán)?
          4. Http 和 Https 的區(qū)別?
          5. TCP 的三次握手和四次回收?
          6. TCP 如何保證可靠傳輸?
          7. BIO、NIO、AIO 的區(qū)別?
          8. 加密算法知道哪些?什么是對稱加密?什么是非對稱加密?
          9. 如何保證接口的安全性?應該使用什么加密策略?
          10. 說下哈希一致性算法?
          11. MySQL 索引的數據結構和原理?
          12. MySQL 的調優(yōu)經驗
          13. 微服務的技術選型?為什么選擇 Motan?
          14. RPC 調用的原理

          騰訊

          通常是三輪技術面試,一輪 HR 面試,第一輪面試會有一道算法題,有的時候可能是 4 輪技術面試。

          一面

          一面主要是問 Java 基礎,常規(guī)題,比較見答案。

          1. Java 中使用的是值傳遞還是引用傳遞?
          2. 方法調用時入參是如何傳遞的?
          3. JVM 中有哪些數據區(qū)域?
          4. List 集合哪些?ArrayList 和 LinkedList 的區(qū)別和使用場景?為什么?
          5. HashMap 的實現(xiàn)原理?1.7 和 1.8 的區(qū)別?
          6. HashMap 中的 hash 算法?這樣的 hash 算法有什么好處(高低 16 位均參與運算)?如何尋址?
          7. 使用 HashMap 會有哪些問題?(1.7 和 1.8 中有什么不同)如何解決?
          8. Java 中有哪些線程安全的 Map?
          9. ConcurrentHashMap 的實現(xiàn)原理?1.7 和 1.8 的區(qū)別?
          10. ConcurrentHashMap 如何統(tǒng)計元素的個數?會有什么問題?
          11. 什么是 JMM 內存模型?
          12. synchronized 的實現(xiàn)原理
          13. 線程池的實現(xiàn)原理?有哪些參數,分別是什么含義?
          14. 垃圾回收算法。
          15. Java 中反射的基本原理?實際項目中是如何使用反射的?
          16. 熟悉哪些設計模式?在項目中哪些地方實際使用過?
          17. 一道算法題

          二面

          主要聊的是項目,技術問題都是在聊項目的時候帶出來的。

          1. 最近做過的最有成就感的項目?這個項目中遇到過什么問題?
          2. 你們的分布式系統(tǒng)中如何保證數據一致性問題?(回答:利用了 RocketMQ 的事務消息來保證最終一致性,后面大部分時間都在聊 RocketMQ 的實現(xiàn)原理)
          3. 客戶端請求過來,后端如何防止重復請求,保證冪等?
          4. 如何實現(xiàn)分布式鎖?
          5. redis 實現(xiàn)分布式鎖存在什么問題?
          6. redis 分布式鎖與 lua 腳本?
          7. redission 了解過嗎?說說它的實現(xiàn)原理?
          8. 在項目中為什么使用 RocketMQ?對于 MQ,你們是如何選型的?
          9. RocketMQ 的實現(xiàn)原理?消息時如何存儲的?
          10. 線上出現(xiàn) MQ 丟失消息?問題可能出現(xiàn)在哪兒?如何保證 MQ 的消息不丟失?
          11. 如何保證 RocketMQ 的高可用性?
          12. RocketMQ 的事務消息的實現(xiàn)原理?
          13. 如何保證消息的順序性?
          14. 如何保證消息不被重復消費?
          15. 你們項目中涉及到了轉賬相關的業(yè)務,那怎么保證資金的準確性和安全性?
          16. 針對你們的項目設計一個對賬系統(tǒng)。
          17. 如何保證分布式系統(tǒng)的強一致性?

          三面

          和二面幾乎一樣,大部分時間聊項目,問題也類似,重復面試題不再贅述

          1. 聊項目經驗
          2. 使用 redis 過程中遇到過什么問題?如何解決熱 key 問題?
          3. 你們的 redis 使用的那種模式?集群模式和哨兵模式的區(qū)別?集群模式和哨兵模式如何保證 redis 集群的高可用?redis 集群的故障轉移過程?
          4. raft 協(xié)議的原理?
          5. JVM 調優(yōu)經驗?
          6. 什么是三色標記?
          7. 數據庫與緩存的雙寫一致性問題?
          8. 結合項目,分庫分表該如何設計
          9. MySQL 的主從復制原理?
          10. ConcurrentHashMap 的實現(xiàn)原理?
          11. CucurrentHashMap 中 Node 節(jié)點是如何設計的?為什么要用 final 和 volatile 修飾 Node 節(jié)點的屬性?有什么作用?
          12. 對個人職業(yè)有什么規(guī)劃?

          四面

          1. 項目經歷
          2. 一個對象是如何存儲在 JVM 中的?
          3. 類加載過程,以及方法的執(zhí)行的過程?
          4. JVM 的垃圾回收機制?為什么要區(qū)分新生代、老年代?
          5. 線上 GC 有問題,如何排查?
          6. Spring 的 AOP 的使用場景?AOP 機制有什么好處?
          7. 分布式事務問題,CAP 理論?2PC、XA、TCC、MQ 等原理
          8. 類似于淘寶這樣的系統(tǒng),你覺得他們的他們是如何實現(xiàn)數據的強一致性的?
          9. redis 集群如何實現(xiàn)擴容?
          10. redis 的 rehash 的過程?
          11. Netty 的線程模型有哪些?
          12. 什么是 TCP 的粘包與半包?Netty 是如何解決的?
          13. epoll 的原理?
          14. TCP 的三次握手和四次揮手?為什么是 3 次和 4 次?
          15. 你們的廣告檢索引擎是如何設計的?目前流量多大?如果支撐更大量級的廣告投放
          16. 為什么從上一家公司離職?

          阿里

          三輪技術面試,一輪 HR 面試,第一輪通常是電話面試,第二輪是視頻,可能會有一道算法題。

          一面

          一面基本是 Java 基礎問題,比較簡單。

          1. Java 如何判斷一個對象能否被回收?垃圾回收算法有哪些?
          2. 什么是內存模型?
          3. 什么是線程安全?
          4. Java 中鎖有哪些?synchronize 和 Lock 的區(qū)別?
          5. synchronize 的底層實現(xiàn)原理
          6. 對象在內存中的布局?
          7. volatile 關鍵字的實現(xiàn)原理?
          8. 什么是原子性、可見性、有序性?什么是 happen-before 原則?解釋一下 final 的語義?
          9. 什么是 CAS?CAS 存在什么問題?
          10. Lock 系列鎖的實現(xiàn)原理?
          11. 什么是原子類?原子類的實現(xiàn)原理?
          12. Java 中對象的引用有哪些類型?
          13. ThreadLocal 的實現(xiàn)原理?存在什么問題?如何避免?
          14. HashMap 的實現(xiàn)原理?1.7 和 1.8 的區(qū)別?
          15. 有哪些線程安全的 Map?ConcurrentHashMap 的實現(xiàn)原理?1.7 和 1.8 的區(qū)別?
          16. ConcurrentHashMap 是如何統(tǒng)計 size 的?
          17. MySQL 的索引為什么是 B+Tree,而不是數組、Hash 之類的數據結構?為什么不是 B-Tree?
          18. Redis 有哪些數據類型?List 中數據非常多怎么辦?
          19. Redis 的持久化機制?AOF 和 RDB 的優(yōu)缺點?
          20. 線上服務接口非常慢?如何排查?

          二面和三面

          二面和三面是同一天面的,記不清了,大概是這些問題,面試官比較喜歡追問。

          1. 一道算法題。
          2. 聊項目經歷,非常細。
          3. 垃圾標記算法和垃圾回收算法有哪些?
          4. 什么是三色標記?什么是安全點與安全區(qū)域?
          5. 簡述一下 G1 垃圾回收器的原理?
          6. 為什么你們項目中沒有使用 G1 垃圾回收器?
          7. 什么時候會觸發(fā) Minor GC?什么時候觸發(fā) Old GC?什么是 Full GC?
          8. 對象什么時候進入到老年代?什么是動態(tài)年齡判斷?
          9. 你們線上服務的 QPS 有多大?機器配置是多少?JVM 的參數是怎么設置的?GC 的頻率?為什么要這這樣配置?
          10. 假設線上服務的流量是當前流量的 1 萬倍?系統(tǒng)會出現(xiàn)什么現(xiàn)象?如何優(yōu)化?
          11. Redis 的高可用怎么保證?線上有多少臺機器?怎么部署的?
          12. Redis 實現(xiàn)分布式鎖的原理?存在什么問題?
          13. 如何用 Zookeeper 實現(xiàn)分布式鎖?存在什么問題?
          14. Redis 中遇到熱 key 會造成什么問題?如何發(fā)現(xiàn)熱 key?如何解決熱 key 的問題?
          15. SQL 的優(yōu)化經驗有哪些?索引的設計準則?
          16. 如何查看 SQL 的慢查詢日志?線上服務出現(xiàn)慢查詢了怎么處理?
          17. 線上數據庫出現(xiàn)了死鎖怎么辦?
          18. MySQL 的 InnoDB 在可重復讀隔離界別下如何解決不可重復讀問題和幻讀問題的?什么是快照讀?什么是當前讀?
          19. MySQL 中有哪些鎖?什么是間隙鎖?
          20. MySQL 中有哪些日志?
          21. 數據庫有哪些特性?MySQL 是如何保證機器宕機重啟后,數據不丟失的?
          22. binlog 有什么作用?將其格式設置為 statement 會有什么問題?你們線上是如何配置的?
          23. 如何保證 MySQL 的高可用?主從復制的原理?
          24. 現(xiàn)在線上環(huán)境中發(fā)現(xiàn) MySQL 的從節(jié)點大幅落后于 master 節(jié)點,可能是什么原因?如何處理?
          25. 消息隊列的選型?RocketMQ 的實現(xiàn)原理?
          26. 如何保證消息不丟失?如何保證不重復消費消息?
          27. 線上 MQ 出現(xiàn)消息大量積壓,應該如何處理?
          28. 讓你設計一個 MQ,你會如何設計?
          29. 什么是 mmap?
          30. netty 用過嗎?為什么 netty 是高性能的網絡框架?
          31. 零拷貝機制的實現(xiàn)原理?
          32. Zookeeper 集群如何部署?Zookeeper 如何實現(xiàn)選舉?什么是 ZAB 協(xié)議?
          33. Zookeeper 如何保證數據的順序一致性?
          34. Zookeeper 的使用場景?如何支撐大量的讀請求?
          35. 你們微服務的注冊中心是如何選型的?Zookeeper 和 Eureka 作為注冊中心的區(qū)別?它們有什么瓶頸?
          36. 如何設計一款能支撐數十萬機器組成的集群的注冊中心?
          37. 如何設計一個秒殺系統(tǒng)?在雙十一當天,從瀏覽器中輸入 www.taobao.com 到加載出頁面,說一下它的完整過程。


          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费在线观看a | 77777777少妇亚洲 | 性爱一级 | 人人摸人人艹 | 97操操操 |