寫在前面
- 寫下這篇博客的時間是2020年3月12日22:00。
- 在今天上午10:30-11:30,我經歷了人生中第一次求職面試。
- 目前大三,想在春招找大廠的暑期實習,原計劃拿到轉正Offer後,大四能夠一邊企業工作一邊完成畢業論文。
- 騰訊今年2020年3月5日可以正式投遞簡歷,2020年3月8日凌晨1:00左右我投遞了後臺開發實習生崗位。鵝廠的效率很高,2020年3月9日9:46,收到了騰訊的面試邀請,時間是2020年3月12日10:30。
- 收到面試邀請後,迅速把未完成的任務快速處理完後,開始投入面試準備。
- 2020年3月9日下午,複習C++知識。
- 2020年3月10日,複習Linux、操作系統、計算機網絡知識。
- 2020年3月11日,複習數據庫、Java知識,撰寫自我介紹,熟悉簡歷提及的項目。
- 2020年3月12日10點,進入會議室,對方爲天美工作室面試官,心情很複雜(前兩天爲了專心準備,卸載了王者榮耀)。10:30準時開始面試。
面試問題
- 設計的遊戲多人玩是多少人玩,具體如何實現的?(項目相關)
- 遊戲客戶端是如何連接服務端的?(項目相關)
- Socket是阻塞的還是非阻塞的?(項目相關)
- 服務端監聽客戶端請求是阻塞監聽還是非阻塞監聽?(項目相關)
- Linux平臺多人遊戲服務端和客戶端用什麼語言?(項目相關)
- 你會使用C++嗎?
- 什麼是字節對齊?
- 爲什麼要將字節對齊?
- 該結構體大小?
struct A
{
char a;
int b;
double c;
}
sizeof(A);
- 知道多態嗎?
- 什麼是虛函數?
- 實現延遲綁定的原理?
- 該結構體大小?
class A
{
public:
int a;
virtual void func();
}
sizeof(A);
Union
用過嗎?new
和malloc
的區別?malloc
開闢一塊內存後,如何將一個類移到該內存?const char* p1
和const* const p2
的區別?- 如何實現一個函數能夠在
main
函數之前執行? - 進程在內存中分爲哪些區域?
- 棧區和堆區的大小取決於什麼?
- 棧區最大的大小是多少?
- 什麼能分配在棧上?
- 模板瞭解嗎?
stl::vector
和stl::map
瞭解嗎,stl::map
用過嗎?stl::vector
如何實現?stl::map
底層實現是什麼?stl::map
爲什麼不用平衡樹而用紅黑樹?- 下面的代碼會出現什麼結果?
std::map<int,int> stMap;
int i = stMap[1024];
- TCP/IP的四層模型是什麼(OSI的七層模型)?
- 詳述OSI的七層模型?
- TCP如何建立連接?
- TCP如何斷開連接?
- TCP斷開連接時的
time wait
狀態是什麼?爲什麼需要存在這個狀態? - 兩個數據包傳輸過來可以一次接收嗎?
- 用過UDP嗎?
- 談一下UDP?
- 如果發送一個20K的數據包,接收端存在亂序嗎?爲什麼?
- OSI哪一層對數據包進行切分?
- (共享屏幕編寫代碼)實現快速排序。
- (共享屏幕編寫代碼)給你兩個棧,實現一個隊列。
- (共享屏幕編寫代碼)實現歸併排序。
- 你有什麼問題想問我?
總結
- 天美工作室後臺開發項目主要基於C++。
- 問的問題非常基礎,C/C++基礎要實。
- 算法務必深入研究,必須用代碼實現,反覆練習。
- 多瞭解粘包分包、異步Socket、select和epoll,Linux、數據庫基礎要好,熟悉MySQL、InnoDB、MyISAM等。
- 面試官多次詢問有什麼問題想問他,務必提前準備有價值的問題,儘量抓住機會從面試官那裏獲取個人真心關注的信息,面試官樂意幫助你進一步提升自己。
能走多遠走多遠