天天看點

[todo]背景開發面試 c c++參考文章引文及相關資料

參考文章

騰訊背景開發面試總結,原創,吐血推薦!!

引文及相關資料

c語言:

宏定義和展開(必須精通)

位操作(必須精通)

指針操作和計算(必須精通)

記憶體配置設定(必須精通)

sizeof必考

各類庫函數必須非常熟練的實作

哪些庫函數屬于高危函數,為什麼?(strcpy等等)

c++:

一個String類的完整實作必須很快速寫出來(注意:指派構造,operator=是關鍵)

虛函數的作用和實作原理(必問必考,實作原理必須很熟)

sizeof一個類求大小(注意成員變量,函數,虛函數,繼承等等對大小的影響)

指針和引用的差別(一般都會問到)

多重類構造和析構的順序

stl各容器的實作原理(必考)

extern c 是幹啥的,(必須将編譯器的函數名修飾的機制解答的很透徹)

volatile是幹啥用的,(必須将cpu的寄存器緩存機制回答的很透徹)

static const等等的用法,(能說出越多越好)

資料結構或者算法:

《離散數學》範圍内的一切問題皆由可能被深入問到(這個最坑爹,最重要,最展現功底,最能加分,特别是各類樹結構的實作和應用)

各類排序:大根堆的實作,快排(如何避免最糟糕的狀态?),bitmap的運用等等

hash, 任何一個技術面試官必問(例如為什麼一般hashtable的桶數會取一個素數?如何有效避免hash結果值的碰撞)

網絡程式設計:

tcp與udp的差別(必問)

udp調用connect有什麼作用?

tcp連接配接中時序圖,狀态圖,必須非常非常熟練

socket服務端的實作,select和epoll的差別(必問)

epoll哪些觸發模式,有啥差別?(必須非常詳盡的解釋水準觸發和邊緣觸發的差別,以及邊緣觸發在程式設計中要做哪些更多的确認)

大規模連接配接上來,并發模型怎麼設計

tcp結束連接配接怎麼握手,time_wait狀态是什麼,為什麼會有time_wait狀态?哪一方會有time_wait狀态,如何避免time_wait狀态占用資源(必須回答的詳細)

tcp頭多少位元組?哪些字段?(必問)

什麼是滑動視窗(必問)

connect會阻塞,怎麼解決?(必考必問,提示:設定非阻塞,傳回之後用select檢測狀态)

如果select傳回可讀,結果隻讀到0位元組,什麼情況?

keepalive 是什麼東東?如何使用?

列舉你所知道的tcp選項,并說明其作用。

socket什麼情況下可讀?

db:

mysql,會考sql語言,伺服器資料庫大規模資料怎麼設計,db各種性能名額

最後:補充一個最最重要,最最坑爹,最最有難度的一個題目:一個每秒百萬級通路量的網際網路伺服器,每個通路都有資料計算和I/O操作,如果讓你設計,你怎麼設計?