面試前就有聽說過字節(jié)比較考驗算法牡辽,面試的時候果然是喳篇,還好自己刷題比較多,這也驗證了一個說法态辛,大家在面試字節(jié)等目前比較火的互聯(lián)網(wǎng)公司麸澜,一定要記得多刷題。
文末會有自己面試的時候準備好的面試題PDF文檔奏黑,有注意各位查漏補缺炊邦,有需要的可以進鏈接免費獲取到,這次面試的答案我也已經整理出來了熟史,文末會有獲取方式馁害! 具體的面試題,大家看正文吧蹂匹!
信息來源于一位網(wǎng)友碘菜。
字節(jié)跳動一面
自我介紹
我簡歷里面有一個商城的項目,要求畫一個商城項目的所有的模塊限寞,然后講解忍啸。
在用戶登錄的時候,由于HTTP是無狀態(tài)的如何識別不同的用戶(session或者cookie)履植,然后讓說一下session和cook各有什么優(yōu)缺點计雌。
單點登錄的問題如何解決(服務器集群的情況下,用戶如何在一-臺服務器上登錄静尼,訪問其他的服務器就不需要登錄了) ?
答:服務器集群之間廠播session廠播或者使用Redis共享session。
Redis的底層是通過什么實現(xiàn)的?
為什么Redis他是通過hashtable實現(xiàn)的传泊,但是它的擴容的時候并沒有卡頓?
為何Redis是單線程的還是這么快?
商城如果有用戶注冊的模塊鼠渺,那么在用戶注冊成功之后一般會返回一個郵箱連接,然后用戶點擊連接跳轉到商城主頁【煜福現(xiàn)在要求連接的有效時間為30分鐘拦盹,這種服務如何保證?
答:可以在數(shù)據(jù)表中增加一個超時時間的字段,用戶點擊連接的時候判斷是否已經超時溪椎,在進行商品展示的時候普舆,如果一個商品有不同的分配,那么可能會涉及到有多級分類的問題校读。
如何涉及數(shù)據(jù)庫表沼侣,來實現(xiàn)商品的多級分類?
把你知道的TCP都說下?
說一些TCP的三次握手歉秫、四次揮手?以及各自的狀態(tài)蛾洛。
在四次揮手的情況下,如果服務器端出現(xiàn)了大量處于close-wait的連接狀態(tài),分析一下原因轧膘,如何設置參數(shù)解決這樣的問題?
在客戶端time-wait的狀態(tài)-般會持續(xù)多長時間?為什么要持續(xù)這么長時間?如何有大量的time-wait狀態(tài)钞螟,出現(xiàn)這種情況的原因是什么?如何解決?
兩個字符串的最大子序列問題。
點擊下面這個谎碍,進擊即可獲得
字節(jié)跳動二面
對于你的商城項目,如果對于同一個分類有多個賣家蟆淀,如何設計數(shù)據(jù)表?
對于高并發(fā)的系統(tǒng)拯啦,如何設計架構才能避免瞬間數(shù)據(jù)庫收到瞬間高流量的沖擊?
如果你用Redis實現(xiàn)的話,可能會出現(xiàn)商品超賣的問題扳碍,那么你是如何結果商品超賣問題的?
一般在支付的過程中提岔,用戶支付、賬戶被凍結笋敞、訂單的生成碱蒙、賣家?guī)齑鏈p少、賣家收到錢夯巷,這是個一系列的過程赛惩,那么你如何設計實現(xiàn)分布式的事務?
答:消息隊列
如果用戶在提交訂單之后向消息隊列發(fā)送消息,這個時候網(wǎng)絡出現(xiàn)異常趁餐,消息隊列并沒有接收到用戶發(fā)送的消息怎么辦?
答:消息隊列會有一個回調接口喷兼,對于那些沒有確認或者取消的消息不斷的輪訓,判斷是否提交成功后雷。
對于不同的業(yè)務我們會進行分庫存儲季惯,說一下MySQL的主備模式?
MySQL的主從同步時如何實現(xiàn)的?
日志在MySQL的主從同步過程中,SQL線程可不可以并行的執(zhí)行?
答:不可以臀突,因為這樣可能SQL執(zhí)行的順序不同勉抓,導致事務提交時間有差異
說一下NIO機制、select系 統(tǒng)調用函數(shù)?
B B+樹的特點?
字符串匹配候学,二叉搜索樹的第K小節(jié)點藕筋,鏈表每隔K個節(jié)點進行翻轉。
卡著項目問題一直問梳码,大家去面試的時候隐圾,一定要對簡歷中所用到的知識點有一定的見解,不要被面試官的連環(huán)炮嚇到了掰茶!
字節(jié)跳動三面
自我介紹
問我GitHub賬號
設計一個短連接服務
不會暇藏,涉及了MD5hash算法
兩個雞蛋問題,如果有100層樓濒蒋,如何判斷出恰好在第幾層樓摔壞?
能不能推演出一個數(shù)學公式
用戶訪問一個URL的全部過程
場景:
一般情況下叨咖,我們的IP的存儲都是將點十進制轉化為-個長整型進行存儲,如1.2.3.4–》1234,現(xiàn)在有一個20w行的文件甸各,其中文件的每一行都存儲了一些信息:
1234中國電信 張三
1235-2346中國移動垛贤,李四
設計一個IPquery的服務,以最快的形式趣倾,根據(jù)我查詢的IP返回用戶的基本信息聘惦。(用 代碼實現(xiàn))
最后:
提供【免費】的Java架構學習資料,學習技術內容包含有:Spring儒恋,Dubbo善绎,MyBatis, RPC, 源碼分析,高并發(fā)诫尽、高性能禀酱、分布式,性能優(yōu)化,微服務 高級架構開發(fā)等等牧嫉。
點擊下面這個剂跟,進擊即可獲得
還有Java核心知識點+全套架構師學習資料和視頻+一線大廠面試寶典+面試簡歷模板可以領取+阿里美團網(wǎng)易騰訊小米愛奇藝快手嗶哩嗶哩面試題+Spring源碼合集+Java架構實戰(zhàn)電子書。