最近校招面試記錄

程式碼,出來捱打發表於2020-09-28

9.25 14:00 位元組一面(1h)

1.自我介紹

2.實習專案介紹,XX功能是怎麼實現的?

3.講講mysql中的B+樹,SQL是如何調優的?舉個幻讀的例子?寫一條sql語句,分庫分表?,主從複製?;

4.mysql的事務是怎麼實現的?undo log和redo log的區別? MVCC和間隙鎖???

5.JVM的垃圾回收演算法?

6.redis的基本資料結構以及使用場景,redis的主從複製,持久化機制(RDB和AOF適合什麼樣的場景),redis的刪除策略?記憶體淘汰機制?如何實現lru?

7.專案中的redis是怎麼用的?專案中redis的過期時間是怎麼設定的?專案中如何提升高併發的效能的?

8.演算法:蛇形列印二叉樹

9.反問

 

9.28 13:30 阿里一面(1h)

1.自我介紹

2.介紹下你的實習專案,每日推薦的功能如何實現?如何實現對歌曲的去重?假如不喜歡的列表數目非常多(可能幾千條,幾萬條怎麼做)?講下RPC?

3.介紹下你的秒殺專案,秒殺的流程是怎樣的?如何模擬高併發的操作?假如你的庫存有10個,來了3000個併發你是怎麼處理的?怎樣判斷使用者是不是秒殺成功?你的使用者資訊存在哪兒?

4.講下redis的特性有哪些?redis如何實現一個計數器?redis中是如何保證執行+1操作的時候,不會出現執行緒安全問題(即初始值為0,來10個執行緒對之執行+1操作,其結果必是10),如何是實現redis分散式鎖?還了不瞭解其他分散式或者其他中介軟體不?

5.講下索引的b+樹?知道有什麼索引型別?主鍵索引和唯一索引的區別?唯一索引可以有多個的使用場景是什麼?聯合索引為什麼有最左匹配原則?

6.講下執行緒池的引數有哪些?當執行緒提交一個任務時,執行緒池是如何處理的?線上程池總使用threadLocal要需要注意什麼?threadPool有什麼應用場景?

7.講下hashmap的put()方法的流程?擴容是怎麼擴容的?為什麼要擴容2倍?

8.反問

面評:很多東西還停留在會用的層面,需要進一步去理解原理,以及多問為什麼?

相關文章