快手社招 java 一二面
??面試公司:快手
??面試崗位: java 開(kāi)發(fā)
??面試問(wèn)題:
一面
- 自我介紹+項(xiàng)目
- 分層緩存架構(gòu)
- 數(shù)據(jù)如果只存在 redis 中可以嗎
- DB 中的寫(xiě)壓力
- MQ 有消息積壓?jiǎn)?/li>
- DB 的 TPS
- 怎么分庫(kù)分表的
- 讀寫(xiě)分離
- 如果你們的redis中要新增一個(gè)數(shù)據(jù),是怎么做的
- 怎么做的異步重試
- redis 中是什么形式來(lái)存的數(shù)據(jù)
- 如果突然有很多數(shù)據(jù)要寫(xiě)進(jìn)redis了,有什么措施
- 如果緩存了 5 頁(yè)數(shù)據(jù),這個(gè)時(shí)候新增加了一條,會(huì)發(fā)生什么
- 每臺(tái)實(shí)例上的本地緩存都要存儲(chǔ)所有的數(shù)據(jù)信息嗎
- 如果數(shù)據(jù)越來(lái)越多會(huì)對(duì)本地緩存造成什么影響
- 本地緩存淘汰策略
- 秒殺場(chǎng)景下單全流程
- 庫(kù)存回刷
- 有一筆訂單用戶(hù)取消了,這個(gè)時(shí)候 redis 成功了但是數(shù)據(jù)庫(kù)沒(méi)成功,會(huì)發(fā)生什么
- 如果你們?cè)诹璩繉?duì)賬同步的時(shí)候剛好碰上用戶(hù)下單呢
- 被攔截的用戶(hù)會(huì)看到什么報(bào)錯(cuò)
- 具體加了什么鎖
- 分布式鎖的原理是什么
- 回刪完成后怎么解鎖
- 鎖的安全性怎么保證
- 為什么你們釋放鎖的時(shí)候需要用一個(gè)唯一的 id 做校驗(yàn)
- threadLocal 怎么做到線(xiàn)程安全的
- threadLocalMap 和 HashMap 的區(qū)別
- ThreadLocal怎么避免內(nèi)存泄漏
- AtomicInteger 類(lèi),這個(gè)類(lèi)是線(xiàn)程安全的嗎,原理是什么
- 線(xiàn)程池調(diào)度機(jī)制
- Synchronized 和 reentrantlock的區(qū)別
- select * from t where a = 100 and b > 100 and b <= 1000 and c = 10,給這個(gè) sql 創(chuàng)建索引
- innodb 默認(rèn)事務(wù)隔離級(jí)別
- 可重復(fù)讀和讀已提交的區(qū)別
- 算法題:有序鏈表去除重復(fù)元素 給出1→2→3→3→4→4→5,返回1→2→5
??面試體驗(yàn):面試節(jié)奏很和諧
二面:
- 項(xiàng)目+自我介紹
- 具體說(shuō)一下緩存優(yōu)化和高并發(fā)下單
- redis 預(yù)占庫(kù)存,先預(yù)占還是先下單
- 如果預(yù)占成功但是下單失敗呢
- redis 慢查詢(xún)的優(yōu)化怎么做的
- 怎么判斷 redis 有無(wú)慢查詢(xún)
- MySQL的鎖
- 間隙鎖之間互斥嗎
- 索引
- 主鍵索引和非主鍵索引
- 索引失效
- 場(chǎng)景設(shè)計(jì):有一個(gè)直播間打賞的 MQ,記錄某用戶(hù)在某直播間打賞了某主播,有多少打賞金額。實(shí)現(xiàn)一個(gè)直播間送禮金額榜單,需要展示 top100。要求:準(zhǔn)時(shí)實(shí)時(shí)性;準(zhǔn)確性;高并發(fā)
- 算法題:實(shí)現(xiàn)一個(gè) LinkedList 雙向鏈表的數(shù)據(jù)結(jié)構(gòu),里面有 add 方法和 remove 方法
- 了解可靠消息原理嗎
- 不支持兩段式提交怎么實(shí)現(xiàn)事務(wù)消息
- 如何判斷消息需要重試
??面試體驗(yàn):非常難
#軟件開(kāi)發(fā)筆面經(jīng)#