直接線上面試,三次。前兩次技術性問題比較多,第三次是leader面,主要問了項目相關以及優缺點之類的問題。
字節跳動后端開發實習面試題
一面
自我介紹
1.tcp的三次握手和四次揮手,以及為什么。
2.程序中堆和棧的區別,以及為什么要分堆和棧。
3.怎么實現隊列,我說可以用數組和鏈表兩種方式。然后他又問還有什么方式,我沒想起來,他提醒到棧行不行,我說可以用兩個棧,一個出,一個進。
4.怎么實現死鎖,用偽代碼寫下來。
5.進程和線程的區別。
6.樂觀鎖和悲觀鎖是什么,什么情況下使用。
7.算法道題,寫個算法計算一個數的開平方,要求精確到5位小數。
二面
自我介紹
1.hash表的原理。
2.除了拉鏈法還有什么方法解決沖突
3.如果紅黑樹大小過大了怎么辦。
4.設計一個hash表,既可以隨機讀取,也可以按插入順序讀取。
5.設計一個按訪問次數排序hash表。
6.ping的原理,怎么算的時延和丟包率。
7.用udp設計應用層程序怎么設計保證可靠。
8.就是給一棵樹的前序遍例(有空結點),問我怎么知道這棵樹存不存在。比如:9,3,4,#,#,1,#,#,2,#,6,#,#就是一棵樹。1,#,#,2就不是一棵樹。
三面
自我介紹
1.你有什么優點和缺點?
2.對于你的優點,你有什么可以證明的事例嗎?
3.說一下你的項目(我的本科畢設)(說的亂七八糟的)
4.你提到了爬蟲,現在讓你設計一個爬蟲系統,你覺得有什么模塊?(答得很爛,根本不知道怎么答)
5.做題:一個100長度的數組里包含1到100,亂序的。把其中一個數改成其他數,找出來被改的數的位置和值
6.做題:給一個數字,要求輸出比它大的最小的回文數。比如輸入12310,要求輸出12321。然后要求設計測試用例(沒說出幾個用例)
你是通過何種渠道獲得這次面試機會的?
答:網上申請
你覺得這次面試的難度如何?
答:困難
你對這次面試的整體感覺怎么樣?
答:很好
這次面試的結果如何?
答:面試成功且工作