分享一份讀者面試美團的面經,比較有參考性,感興趣的可以看看~ 一面 消息隊列如何保證可靠性 消息隊列如何保證消息冪等性 消息隊列的優缺點 為什麼用b+樹 聚集索引和主鍵區別,其他引擎怎麼做的 平時資料庫編碼 explain參數 http報文參數有哪些嗎? 做題,鏈表奇偶有序輸出 二面 自我介紹 有哪 ...
分享一份讀者面試美團的面經,比較有參考性,感興趣的可以看看~
一面
- 消息隊列如何保證可靠性
- 消息隊列如何保證消息冪等性
- 消息隊列的優缺點
- 為什麼用b+樹
- 聚集索引和主鍵區別,其他引擎怎麼做的
- 平時資料庫編碼
- explain參數
- http報文參數有哪些嗎?
- 做題,鏈表奇偶有序輸出
二面
- 自我介紹
- 有哪些排序演算法?
- 介紹下快排/堆排/歸併排序。
- 資料庫中的索引應該如何設計?
- 有哪些索引失效的情況?
- 你們用到的HTTP介面用到了什麼提交方式?
- GET/POST的區別?
- 除了GET/POST還有哪些?
- 面向對象的基本原則?再詳細說下依賴倒轉。
- 介紹下策略模式和觀察者模式?
- 如何保證用戶請求的等冪性?等冪性指的是用戶可能連點提交三次支付請求,返回同樣的結果(支付成功),但實際後臺只執行一次,保持一致性。
- 介紹下TCP四次揮手?
- 第四次揮手後客戶端是立刻就關閉了嗎?是什麼狀態?
- 兩個大文件,分別每行都存一個url,查找兩個文件中重覆的url。
- 一個大文件中,每一行有一個整數,怎麼找第100大的數?
- 一個大文件中,每一行有一個整數,怎麼找中位數?
- redis的基本數據結構?
- zset是怎麼實現的?有哪些命令?
- 演算法題 力扣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,可以訪問gitee地址。