MySQL+Java+Redis+演算法+網路+Linux 等一個都講不清 美團一面涼涼
面試大概九十分鐘,問的東西很全面,需要做充足準備,就是除了概念以外問的有點懵逼了(嗚嗚嗚~)。回來之後把這些題目做了一個分類並整理出答案(強迫症的我~狂補知識~)分為MySQL+Java+Redis+演算法+網路+Linux等六類,接下來分享一下我的這次美團一面面經++一些我的學習筆記。
注意注意:需要小編整理的MySQL+Java+Redis+演算法+網路+Linux等六類面試答案、學習筆記、思維腦圖(xmind)的朋友可以掃描下方二維碼,助理會一一回復大家~
01 MySQL相關
1.1 美團面試問題
- MySQL有哪些鎖?
- 解釋一下ACID都是什麼
- Innodb中索引的實現
- B+樹
- AUTO_INCREMENT原理(考察併發情況)
- 資料庫的索引有哪幾種?為什麼要用B+樹來做索引?組合索引和幾個單個的索引有什麼區別?資料庫的大表查詢優化了解嗎?MVCC機制瞭解不?MVCC機制有什麼問題?怎麼去解決這個問題?mysql慢語句調優做過嗎?說說你是怎麼做的?
1.2 我的MySQL學習筆記
(1)20個高頻MySQL面試知識點
- 事務四大特性(ACID)原子性、一致性、隔離性、永續性?
- 事務的併發?事務隔離級別,每個級別會引發什麼問題,MySQL預設是哪個級別?
- MySQL常見的三種儲存引擎(InnoDB、MyISAM、MEMORY)的區別?
- MySQL的MyISAM與InnoDB兩種儲存引擎在,事務、鎖級別,各自的適用場景?
- 查詢語句不同元素(where、jion、limit、group by、having等等)執行先後順序?
- 什麼是臨時表,臨時表什麼時候刪除?
- MySQL B+Tree索引和Hash索引的區別?
- sql查詢語句確定建立哪種型別的索引?如何優化查詢?
- 聚集索引和非聚集索引區別?
- 有哪些鎖(樂觀鎖悲觀鎖),select 時怎麼加排它鎖?
- 非關係型資料庫和關係型資料庫區別,優勢比較?
- 資料庫三正規化,根據某個場景設計資料表?
- 資料庫的讀寫分離、主從複製,主從複製分析的 7 個問題?
- 使用explain優化sql和索引?
- MySQL慢查詢怎麼解決?
- 什麼是 內連線、外連線、交叉連線、笛卡爾積等?
- mysql都有什麼鎖,死鎖判定原理和具體場景,死鎖怎麼解決?
- varchar和char的使用場景?
- mysql 高併發環境解決方案?
- 資料庫崩潰時事務的恢復機制(REDO日誌和UNDO日誌)?
20個高頻MySQL面試知識點
(2)MySQL學習思維腦圖(xmind)
MySQL學習思維腦圖
02 Java相關
2.1 美團面試問題
- JVM記憶體模型
- GC垃圾回收演算法
- 講解新生代 老年代
- java的基本型別有哪幾個?String是不是java的基本型別?String為什麼要是final型別的?
- 說一下JVM的執行緒模型?這些區域都分別是幹啥用的?java執行緒模型和jvm執行緒模型注意區分
2.2 我的JAVA學習筆記
(1)JAVA面試寶典
JAVA面試寶典
(2)JAVA併發體系學習思維腦圖(xmind)
JAVA併發體系學習思維腦圖
(3)多執行緒併發程式設計學習思維腦圖(xmind)
多執行緒併發程式設計學習思維腦圖
03 Redis相關
3.1 美團面試問題
- redis瞭解嗎?你說說怎麼用redis實現分散式鎖?
- Redis常用資料結構及底層資料結構實現
- 如何解決 Redis 的併發競爭 Key 問題
- 如何保證快取與資料庫雙寫時的資料一致性?
3.2 我的Redis學習筆記
(1)14個高頻Redis知識點
- redis 簡介
- 為什麼要用 redis /為什麼要用快取(高效能、高併發)
- 為什麼要用 redis 而不用 map/guava 做快取?
- redis 和 memcached 的區別
- redis 常見資料結構以及使用場景分析(String、Hash、List、Set、Sorted Set)
- redis 設定過期時間
- redis 記憶體淘汰機制(MySQL裡有2000w資料,Redis中只存20w的資料,如何保證Redis中的資料都是熱點資料?)
- redis 持久化機制(怎麼保證 redis 掛掉之後再重啟資料可以進行恢復)
- redis 事務
- Redis 常見異常及解決方案(快取穿透、快取雪崩、快取預熱、快取降級)
- 分散式環境下常見的應用場景(分散式鎖、分散式自增 ID)
- Redis 叢集模式(主從模式、哨兵模式、Cluster 叢集模式)
- 如何解決 Redis 的併發競爭 Key 問題
- 如何保證快取與資料庫雙寫時的資料一致性?
14個高頻Redis知識點
(2)Redis學習思維腦圖(xmind)
Redis學習思維腦圖
04 思維/演算法
4.1 美團面試問題
- 使用O(N)複雜度完成GBDT分裂
- 找出無序陣列中相隔距離最長的逆序對
- 給出一個rand5(),實現一個分佈均勻的rand7()生成器
- 有一個點,向北走5公里、東走10km、向南走5公里,回到原點。這樣的點有幾個,證明。
- 有一個n克的物體、一個天平和若干砝碼,這個天平沒有刻度,試問最少用多少個什麼樣的砝碼可以將這個物體的質量稱出。砝碼的質量和個數自行指定。
4.2 演算法刷題
- 程式設計技巧
- 線性表
- 字串
- 棧和佇列
- 樹
- 排序
- 查詢
- 暴力列舉法
- 廣度優先搜尋
- 深度優先搜尋
- 分治法
- 貪心法
- 動態規劃
- 圖
- 細節實現題
演算法刷題
05 作業系統、Linux相關
5.1 美團面試問題
- 死鎖產生的原因
- 程序、執行緒區別,什麼時候用執行緒
- 如何實現一個執行緒池,Java中執行緒池如何進行配置
- linux中有哪些常見的指令,進行介紹
- select、poll、epoll有沒有了解過,講解一下
- 執行緒切換,引申到Java阻塞➡️執行
- 頁面置換演算法有哪些 介紹一下
5.2 Linux學習寶典
Linux學習寶典
06 網路相關
6.1 美團面試問題
- OSI七層模型都是什麼
- 舉例網路協議,都在哪個層
- TCP UDP區別
- TCP如何實現可靠連線
- Time_Wait中2*msl 為什麼
- 如果TCP突然接收方故障 會發生什麼
- HTTP狀態碼 含義,503 504,200
- GET POST區別
- 一個url從輸入到訪問經過了哪些過程
- 說一說TCP三次握手和四次揮手
6.2 JAVA核心知識整理(JVM,JAVA集合,網路,JAVA多執行緒併發,JAVA基礎,Spring原理,微服務,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,設計模式,負載均衡,資料庫,一致性雜湊,JAVA演算法,資料結構,加密演算法,分散式快取)
JAVA核心知識整理—網路
最後的最後
JAVA架構專題面試真題+解析+我的JAVA學習書籍
重要的事情再說一遍,需要文中分享的全部學習筆記的朋友注意啦:點贊+關注,掃描二維碼,免費領取