字節(jié)面試,真滴難!
這是一位球友在9月份的時候分享的字節(jié)面經(jīng),原貼地址:https://t.zsxq.com/13thSy0fw 。真實可信,分享一下,希望對需要的朋友有幫助!
下面是正文。
xdm,拿到字節(jié) offer 了,準備去了。雖然又得要轉(zhuǎn) go 了,哎。。。go 跳 java,又從 java 跳到 go,反復(fù)橫跳,都學(xué)的不深。
分享一下字節(jié)面經(jīng)(亂序回想版)。
一、算法題:
-
給定一個字符串 abcdabgh,給個字符 a,隨機返回 a 下標,比如這個是 0 4。要求返回的概率必須一樣,空間復(fù)雜度要求 O1 即不能開任何空間存儲下標,并且只能遍歷一次。 -
給定 n 個骰子,和為 k 的概率,不能用回溯。 -
給一個數(shù)字比如 234,給個數(shù)組比如{2,3,7},找出第一個不大于 234 的數(shù),比如這個是 233,有幾種情況我記得是,這里用到了有序表我寫的時候。
二、八股文
可能不全有的我好像也沒有整理,還算比較簡單。
計算機基礎(chǔ)
-
堆和樹的區(qū)別?應(yīng)用場景?二叉搜索樹是什么? -
進程之間的通信方式?寫個死鎖?怎么解決? -
操作系統(tǒng)內(nèi)存滿了怎么辦?如何回收?有什么影響? -
什么是僵尸進程?應(yīng)該怎么去操作? -
為什么會有線程安全的問題,如何解決? -
說一下樂觀鎖和悲觀鎖?說一下 CAS?aba 問題是什么?如何解決? -
http 常見的方法和狀態(tài)碼有哪些?502 是什么錯誤?如何排查問題?講一下反向代理?
MySQL
-
索引構(gòu)成?(B+樹)索引優(yōu)化?給個 sql 讓判斷走索引的情況? -
什么是慢 sql,如何查找,如何優(yōu)化? -
三大日志,我記得好像有個問題是 redolog 寫進去了,但是有個 bin log 沒寫進去該怎么辦?(具體的我忘了,我沒回答好)講 write 還有 flush 區(qū)別?redo log 刷盤時機?三大日志的執(zhí)行順序? -
MySQL 的事務(wù)隔離級別?各自解決了什么問題?mvcc 的流程
Redis
-
問了 zset 的底層?為什么不用紅黑樹?(這是我自己引得,我傻了自己說了一句沒用紅黑樹,用的是跳表) -
Redis 里面的命令行比如 setnx 和 setex 還有 zset 里面的 -
Redis 的 key 有大小的限制嗎?有什么影響?怎么辦? -
Redis 的內(nèi)存淘汰策略?(面試的時候一直想不起來 一直背了半天旁路緩存那些東西 我以為涼了的) -
根據(jù) score 查 member 的時間復(fù)雜度?反過來根據(jù) member 查 score 時間復(fù)雜度?
場景設(shè)計
敏感詞庫的設(shè)計,要求增刪改查敏感詞。敏感詞文本匹配,敏感詞一萬個,文本長度 20-10000 這樣子。
trie 樹什么的都回答了,開什么幾個線程這樣子,我也是各種瞎說,后面問我在這里面怎么存儲持久化,給出方法,Redis 里面存儲如果宕機了怎么辦有個節(jié)點?這一塊真的虛,我也不知道怎么辦,感覺面試官很厲害,我給的方案他好像都否定了,說我的方案一天宕機幾分鐘怎么可能行?
三、項目和實習(xí)
這塊也有一些閑聊沒有寫進來。
-
微信掃碼登錄流程?后面的原理你了解嗎?(準備了很久的 Oauth2 總算碰到了開心)csrf 是什么?怎么解決的? -
項目難點(之前登錄日志是同步寫入庫的 后來為了提升效率加入了隊列 先寫隊列后消費入庫 做解耦 但是隊列用了同步操作 有一次 MQ 掛了 導(dǎo)致登錄服務(wù)不可用 這種是不可接受的 記日志不能影響登錄 所以將其改為了異步方式) -
訂單 30 分鐘取消,延時消息這里(這個是我自己引申的,我包裝了一下,我把 MQ 的 18 個隊列講了一下,也講了一下 kafka 的時間輪) -
你實習(xí)用的什么語言?go 的協(xié)程里面出現(xiàn) panic 怎么辦?defer 講一下?gmp 模型了解嗎?
希望對大家有一些幫助,沖!
·············· END ··············
??專屬面試小冊/一對一提問/簡歷修改/專屬求職指南/學(xué)習(xí)打卡,歡迎加入 JavaGuide 官方知識星球 (內(nèi)附星球?qū)賰?yōu)惠券)。
??星球提供的部分技術(shù)專欄/資料(持續(xù)更新完善):
-
《Java面試指北》(準備 Java 面試的小伙伴可以看看,原創(chuàng)內(nèi)容,質(zhì)量很高) -
《后端面試高頻系統(tǒng)設(shè)計&場景題》(包含了常見的系統(tǒng)設(shè)計案例比如短鏈系統(tǒng)、秒殺系統(tǒng)以及高頻的場景題比如海量數(shù)據(jù)去重、第三方授權(quán)登錄) -
《Java 必讀源碼系列》(目前已經(jīng)整理了 Dubbo 2.6.x、Netty 4.x、SpringBoot 2.1 等框架/中間件的源碼) -
《后端高頻筆試題(非常規(guī)Leetcode類型)》(一些常見的非常規(guī) Leetcode 類型的高頻筆試題,每一道題目都有詳細的解答)
?? 近期文章精選:
-
我堅持四年了! -
拿到快手意向了! -
阿里淘天一面,秒掛! -
拒絕入職央企軟開崗,薪資太低! -
23屆普二本Java的求職歷程(已秋招成功) -
快手Java一面,全是基礎(chǔ)! -
面試被掛,項目太簡單! -
拿了兩個 offer,怎么選?
評論
圖片
表情


