美團面經總結(2023最新)

程式設計師大彬發表於2023-05-12

分享一份讀者面試美團的面經,比較有參考性,感興趣的可以看看~

一面

  • 訊息佇列如何保證可靠性
  • 訊息佇列如何保證訊息冪等性
  • 訊息佇列的優缺點
  • 為什麼用b+樹
  • 聚集索引和主鍵區別,其他引擎怎麼做的
  • 平時資料庫編碼
  • explain引數
  • http報文引數有哪些嗎?
  • 做題,連結串列奇偶有序輸出

二面

  1. 自我介紹
  2. 有哪些排序演演算法?
  3. 介紹下快排/堆排/歸併排序。
  4. 資料庫中的索引應該如何設計?
  5. 有哪些索引失效的情況?
  6. 你們用到的HTTP介面用到了什麼提交方式?
  7. GET/POST的區別?
  8. 除了GET/POST還有哪些?
  9. 物件導向的基本原則?再詳細說下依賴倒轉。
  10. 介紹下策略模式和觀察者模式?
  11. 如何保證使用者請求的等冪性?等冪性指的是使用者可能連點提交三次支付請求,返回同樣的結果(支付成功),但實際後臺只執行一次,保持一致性。
  12. 介紹下TCP四次揮手?
  13. 第四次揮手後客戶端是立刻就關閉了嗎?是什麼狀態?
  14. 兩個大檔案,分別每行都存一個url,查詢兩個檔案中重複的url。
  15. 一個大檔案中,每一行有一個整數,怎麼找第100大的數?
  16. 一個大檔案中,每一行有一個整數,怎麼找中位數?
  17. redis的基本資料結構?
  18. zset是怎麼實現的?有哪些命令?
  19. 演演算法題 力扣221. 最大正方形

三面

  • 專案相關(模組劃分,專案需求,技術方案,資料庫設計,表的結構及關係,擔任角色)
  • http協議的關鍵欄位,比如request和response頭部資訊有哪些關鍵欄位,有什麼含義
  • http狀態碼:100,200,502,504
  • http和https的區別,https是為瞭解決什麼問題
  • 三次握手、四次揮手(詳細過程+狀態變化)
  • 出現大量的close_wait可能是什麼原因,解決方案,透過什麼工具看出來網路有問題等等
  • Java中常見的集合有哪些,List、Set、Map初始容量載入因子瞭解嗎
  • Java中執行緒通訊的方式有哪些,大概的原理
  • MySQL如果遇到效能不好的問題,比如說慢查詢,怎麼做
  • 資料庫最佳化方案(索引 | 分庫分表)
  • 有哪些索引,資料結構,建立索引的原則
  • 分庫分表的原則,說說場景(水平 | 垂直、熱資料 | 冷資料 blabla)
  • 演演算法題:兩數之和

四面

  • 自我介紹、專案介紹,問了資料量
  • 瞭解微服務嗎?(有沒有自己在做專案時進行調研,瞭解企業目前常用的工具、方法)
  • 瞭解springcloud嗎?
  • 一臺機器無法滿足運載需求,怎麼辦呢?答:多搞幾臺機器,問:多臺機器如何協同工作?
  • 解釋一下mapreduce
  • 如果有一個很大的檔案,TB級別,檔案裡是亂序的數字,如何排序?mapreduce如何實現?
  • 排序過程中的歸併排序,請描述一下其過程?時間複雜度
  • 程式、執行緒區別,問使用Java時,裡面多執行緒的概念和os裡的執行緒程式的區別是什麼?真正使用時,Java裡的執行緒和程式是如何排程?
  • 多執行緒的同步互斥的方法?答了訊號量,問具體怎麼實現,答pv操作,給了具體的場景,問變數如何初始化(等同於口述程式碼)
  • 有哪些索引?(mysql為例)
  • b樹、b+樹是什麼樣的樹結構,查詢複雜度?是平衡二叉樹嗎?
  • 使用過redis嗎?具體做什麼?
  • 手撕程式碼:LRU演演算法;正反序層序遍歷二叉樹

本文已經收錄到Github倉庫,該倉庫包含計算機基礎、Java基礎、多執行緒、JVM、資料庫、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分散式、微服務、設計模式、架構、校招社招分享等核心知識點,歡迎star~

Github地址

如果訪問不了Github,可以訪問gitee地址。

gitee地址

相關文章