一.C++部分
- 爲什麼將析構函數定義成虛函數有什麼好處?
- class與struct 區別?
- C++智能指針有那些?都有什麼區別
- static的作用?
- 拷貝構造函數作用? 如何聲明?
- C++11包括哪寫?
- 虛函數的底層是如何實現的?
- SOCKET有哪寫API?
- 什麼是菱形繼承?
- 什麼是RAII?
- explicit關鍵字的作用?
- volatia關鍵字的作用?
- 什麼是左值和右值?
- 在構造函數和析構函數中調用虛函數有什麼影響?
- C的struct和C++struct的區別?
- C++爲什麼字節對齊?
- C++ 強制類型轉換有哪幾個?都有什麼區別?
二.數據結構
- Vector和List區別?
- 爲什麼Vector申請內存空間是2倍?
- 鏈表反轉?
- 如何判斷鏈表中有環?
- Map是如何實現的?
三.網絡部分
- TCP和UDP區別?
- TCP三次握手的實現?
- 爲什麼會有三次握手?
- TCP四次握手的實現?
- 爲什麼會有time_wait狀態?
- 什麼是快重傳?
- 什麼是慢啓動?
- 如何用UDP協議實現可靠性?
- SSH免密原理?
四.設計模式
- 面向對象的設計原則?
- 常用的設計模式?
五.操作系統
- 如何查看打開文件標識符?
- 進程和線程間區別?