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.反問
1.自我介紹
2.介紹下你的實習專案,每日推薦的功能如何實現?如何實現對歌曲的去重?假如不喜歡的列表數目非常多(可能幾千條,幾萬條怎麼做)?講下RPC?
3.介紹下你的秒殺專案,秒殺的流程是怎樣的?如何模擬高並行的操作?假如你的庫存有10個,來了3000個並行你是怎麼處理的?怎樣判斷使用者是不是秒殺成功?你的使用者資訊存在哪兒?
4.講下redis的特性有哪些?redis如何實現一個計數器?redis中是如何保證執行+1操作的時候,不會出現執行緒安全問題(即初始值為0,來10個執行緒對之執行+1操作,其結果必是10),redis是如何保證原子性的?如何是實現redis分散式鎖?講下rabbitmq?還了不瞭解其他分散式或者其他中介軟體不?
5.講下索引的b+樹?知道有什麼索引型別?主鍵索引和唯一索引的區別?唯一索引可以有多個的使用場景是什麼?聯合索引為什麼有最左匹配原則?
6.講下執行緒池的引數有哪些?當執行緒提交一個任務時,執行緒池是如何處理的?線上程池總使用threadLocal要需要注意什麼?threadPool有什麼應用場景?
7.講下hashmap的put()方法的流程?擴容是怎麼擴容的?為什麼要擴容2倍?
8.反問
面評:很多東西還停留在會用的層面,需要進一步去理解原理,以及多問為什麼?
總結:阿里面試的收穫也挺多的,面試官尤其愛問為什麼???