快手 秋招 Java開發(fā) 一二三面面經(jīng)【已意向】

base:北京
2021.9.7 ?快手一面?
1.
?自我介紹
2.
?
實(shí)習(xí)項(xiàng)目、背景、需求介紹
3.
?InnoDB優(yōu)點(diǎn)
4.
?MyISAM索引底層是什么結(jié)構(gòu)
5.
?B樹和B+樹區(qū)別
6.
?為什么選擇B+樹不選擇B樹
7.
?MySQL如何支持事務(wù)
8.
?undo log如何保證原子性
9.
?MySQL隔離級(jí)別、存在的問題
10.
?MySQL如何解決臟讀、不可重復(fù)讀、幻讀
11.
?如何解決臟讀?(讀已提交)MySQL如何判斷事務(wù)有沒有提交?事務(wù)A中對(duì)id=1進(jìn)行修改,不提交;事務(wù)B中讀取id=1的數(shù)據(jù),如何判斷這個(gè)數(shù)據(jù)有沒有被提交?
12.
?InnoDB可重復(fù)讀是否存在幻讀問題
13.
?如果對(duì)記錄修改,是否會(huì)讀到修改的值?
14.
?LeetCode:8. 字符串轉(zhuǎn)換整數(shù)
15.
?HashMap和HashTable區(qū)別
16.
?
HashTable如何實(shí)現(xiàn)線程安全(給每個(gè)方法加synchronized,put時(shí)只能有一個(gè)線程獲取到鎖)
17.
?其他線程如何知道已經(jīng)有線程在put(Mark word)
18.
?Mark word是什么
19.
?synchronized的鎖優(yōu)化
20.
?出于目的寫博客;什么時(shí)間寫博客
21.
?反問
22.
?其他offer
2021.9.9 快手二面?
1.
?自我介紹
2. ?
項(xiàng)目問題
3.
?實(shí)習(xí)有什么體感
4.
?假設(shè)有1,2,3,4,5,6,7,8,9,10 在B+樹中存儲(chǔ),是什么樣子
5.
?
為什么1和2之間是鏈表
6.
?MySQL有哪些索引
7.
?為什么會(huì)有覆蓋索引
8.
?table 有a b c d四列,(b c d) 聯(lián)合索引,selct c,d from table where c = 1會(huì)使用這個(gè)聯(lián)合索引嗎?不會(huì),最左匹配
9.
?為什么覆蓋索引存在最左匹配原則
10.
?select c,d from table where b = 1 and d = 2會(huì)走索引嗎?我:行。面試官:這個(gè)可以行,也可以不行…分情況,MySQL中有一些優(yōu)化,比如ICP,就會(huì)將索引下推(我沒懂…)
11. ?
算法題:LeetCode 34. 在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置
12.
?HashMap底層數(shù)據(jù)結(jié)構(gòu)是什么
13.
?
HashMap先不考慮紅黑樹,手寫一個(gè)底層數(shù)據(jù)結(jié)構(gòu),存儲(chǔ)key value
14.
?Java 線程的狀態(tài);time-waiting時(shí)間到了,進(jìn)入什么;調(diào)用sleep()進(jìn)入什么狀態(tài)?time_waiting,那這個(gè)time_waiting狀態(tài)會(huì)釋放鎖嗎?不會(huì);鎖等待是什么狀態(tài)?blocked
15.
?wait() notify() 以及線程狀態(tài)轉(zhuǎn)換
16.
?Java線程狀態(tài)和操作系統(tǒng)線程有什么不同?Java線程的
runable=ready+running,操作系統(tǒng)線程分為
running和
ready,并不是合在一起的
17.
?為什么Java把這兩個(gè)狀態(tài)放在一起?
18.
?反問
2021.9.13 快手三面?
1.
?自我介紹
2.
?JVM內(nèi)存結(jié)構(gòu)
3.
?堆如何分代
4.
?為什么要分代
5.
?
回收算法
6.
?
回收算法有哪些具體實(shí)現(xiàn)?垃圾回收器
7.
?TCP三次握手
8.
?TCP 四次揮手
9.
?為什么建立三次、斷開是四次
10.
?四次揮手套接字的狀態(tài)轉(zhuǎn)移
11.
?輸入url的流程
12.
?http的request、response的具體格式
13.
?你們的服務(wù)是如何部署的?SpringBoot中的Tomcat
14.
?LRU 如何實(shí)現(xiàn)?在哪用過
15.
?LRU put get 時(shí)復(fù)
16. ?算法題
100G文件,每行是一個(gè)長(zhǎng)整數(shù),總行數(shù)為N
主機(jī)內(nèi)存1G
結(jié)果:輸出最大的K個(gè)數(shù) (K << N)
————————————
這道題千萬別被100G迷惑,想著分文件之類的…
維護(hù)大小為k的最小堆,如果當(dāng)前元素大于堆頂元素,入堆。這樣,堆中始終存儲(chǔ)的是到當(dāng)前為止,最大的k個(gè)數(shù)。
大小為k的最小堆會(huì)一直存在內(nèi)存中,因?yàn)镵 << N,所以不考慮內(nèi)存不夠的情況
17.
?反問
2021.9.15? HR面
2021.9.22 意向書
整體面試感受非常好,面試官很謙和,答得不對(duì)或者不會(huì)給提示。
以上便是快手的面試流程以及最新面試題,如果說想獲取往期最新的面試資料,點(diǎn)贊+在看,關(guān)注我之后領(lǐng)取資料請(qǐng)添加這個(gè)微信號(hào):tulingQY??添加備注【02】 記得一定要備注【02】不然領(lǐng)不到資料!
以下是往期部分面試資料截圖




騰訊、阿里、滴滴后臺(tái)面試題匯總總結(jié) — (含答案)
面試:史上最全多線程面試題 !
最新阿里內(nèi)推Java后端面試題
JVM難學(xué)?那是因?yàn)槟銢]認(rèn)真看完這篇文章

關(guān)注作者微信公眾號(hào) —《JAVA爛豬皮》
了解更多java后端架構(gòu)知識(shí)以及最新面試寶典


看完本文記得給作者點(diǎn)贊+在看哦~~~大家的支持,是作者源源不斷出文的動(dòng)力
