參考文章 騰訊背景開發面試總結,原創,吐血推薦!! 引文及相關資料 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操作,如果讓你設計,你怎麼設計?