一面
問項目
做過的項目
做題:
- 兩個棧實作一個隊列
- 二叉樹的最大路徑和
- 10L水,3L杯子和7L杯子,得到5L水
計算機網絡方面:
- 三次握手兩次行不行
- 線程通信方式
- 輸入url的過程
- Cookie和session的差別
Java方面:
- Synchronized原理,哪個階段會出現cpu飙升
- 如何判斷對象該被回收
- 線程的生命周期
- 大量線程阻塞在了一起怎麼排查
- 記憶體溢出和記憶體洩漏的差別
- Hash沖突的解決方法
- Integer比較大小要注意的地方
Mysql方面:
- B樹和B+樹的差別
- 怎麼用sql語句實作樂觀鎖
分布式方面:
Redis方面:
- Redis的資料結構
- Redis的線程模型
Rabbitmq方面:
- Mq的使用場景
二面
- 兩個線程交替列印1到100
- 寫代碼,如果一個字元串由某個子串重複構成就輸出這個子串,否則輸出null
- 線程池
- 保證快速響應和保證吞吐量怎麼設施線程池參數,任務隊列可以無限大嗎
- Volatile的作用,原理
- 樂觀鎖和悲觀鎖
- ReentrantLock怎麼實作可重入,公平鎖和非公平鎖,非公平鎖有什麼好處
- 聚簇索引和非聚簇索引,回表
- 索引優化