🔥1.一面
- 你對Spring aop的理解
- 面向切面編程,可以對某個方法前後加入自己想執行的方法函數。底層是動態代理,默認jdk動態代理,沒有實現接口的類的話就是cglib動態代理,採用反射實現
- 動態代理和靜態代理的區別
- 靜態代理就是規定好寫死的代理類,而動態代理是在程序運行時才能確定代理的類
- mysql或者說數據庫的鎖有什麼瞭解
- 按不同維度可以劃分不同鎖:讀鎖和寫鎖。表鎖和行鎖,樂觀鎖和悲觀鎖,表鎖和死鎖。
4. 系統運行過程出現慢sql,對該問題進行分析定位提出解決方法,你覺得有什麼原因?
1. 首先看是哪個接口慢,其次可以開啓慢sql查詢**set global slow_query_log = on;**,先找到是哪個SQL
2. 然後使用explain看是否走了索引,分析執行時間,看是代碼問題還是沒加索引問題
3. 大部分應該都是索引或者程序SQL寫的不行。如果還不行,根據數據量考慮是否是數據庫問題,mysql承受上千萬數據性能就低下了,考慮用pgsql,或者分庫分表
5. mysql的索引分爲哪些類
1. 聚簇非聚簇、普通唯一主鍵全文、單列聯合
(其他都是一些os、計網等基礎)
解法(Leetcode-876原題):
1. 普通做法:第一次遍歷獲取長度、第二次取中間
2. 快慢指針:第一個指針每次走2步,第二個指針走一步
🔥2.二面
(太捲了吧,實習生能學這麼多東西的嗎?)
1. RPC沒怎麼用過,略
Leetcode-三數之和原題
🔥3. 三面
都是問的一些心裏承受能力壓力、職業發展之類的
🔥4. 結果
博主這麼猛都掛了,離譜,今年行情好難,不過中大廠校招基本都是八股文 + leetcode算法,然後要對實習項目很熟很熟,再就是看性格等綜合能力了