位元組跳動後端實習面試經驗
由於參加了暑假的byte camp,所以面試是從二面開始的,順便也說一下byte camp的面試,筆試的話可以在網上找到題。(byte camp體驗非常好)
一面(byte camp)
- 自我介紹
- 程序和執行緒的區別
- 建立一個程序時作業系統做了什麼?
- 核心態和使用者態
- 以QQ為例,應該怎麼設計程序和執行緒
- 程序通訊的方式
- 通訊方式中哪個速度最快?為什麼?
- new和malloc的區別
- malloc和realloc的區別
- C++多型
- 虛擬函式表
- C++的鎖的實現
- C++定義一個函數值針陣列
- 用宏定義一個求最大值
- 演演算法題1:有紅,黃,白三種顏色小球,要求把所有的紅的放在左邊,黃的放在中間,白的放在最後
- 演演算法題2:給出一組線段,求這些線段覆蓋的總長度
二面
- 自我介紹
- 談談專案
- 談談kafka,我們是怎麼設計topic的?
- 為什麼要用websocket?
- 輸入url後都做了什麼?如果存取的是在一個路由器下會發生什麼?
- http的狀態碼
- tcp/ip的理解,tcp處於哪一層,ip處於哪一層
- TCP頭部資訊
- 三次握手的過程,四次揮手中使用者端的wait狀態
- tcp的擁塞控制方法有哪些
- 對https的理解
- 對mysql的索引的理解,侷促性聚簇索引和非聚簇索引
- hash的理解,獨立鏈法和平方探測法有什麼區別
- hash中怎麼刪除一個元素
- 一致性hash
- 說說有那些排序,以及時間複雜度,和穩定性
- 談談對docker的理解,docker和虛擬機器器的區別?
- 說說linux下常用的命令有哪些?
- 演演算法題1:m個房子,每個房子都可以塗n種顏色,要求不能和相鄰的房子顏色一樣,給出每個房子塗每種顏色的花費,求最小花費
- 演演算法題2:每個結點有它的前驅,求一個可行的遍歷所有結點的順序