面試複習重點——資料結構、作業系統、計算機網路、資料庫
必看書籍:劍指offer、程式設計師面試寶典
來自:騰訊、搜狐、網易、烽火、百度、大眾點評、美團、風行
1. 死鎖是什麼?什麼情況下產生?怎麼解決?
2. 設計模式(尤其是單例模式,要會寫該模式的程式框架,要注意同步問題,怎麼實現在要用時才建立)
3. 執行緒的同步?為什麼要同步?執行緒間通訊方式。
4. 程序與執行緒的區別,程序間通訊方式。
5. 容器類:hashmap與hashtable的區別,arraylist與linkedlist的區別
6. 為什麼要用多執行緒,實現多執行緒的兩種方式,有什麼區別?
7. JNI介面,C++中extern C的作用
8. C的記憶體分配,C中堆的記憶體分配
9. 指標:int (*s[10])(int)解釋其含義(課本上有)
10. Volatile的作用:儲存特殊地址的穩定訪問,直接從記憶體中讀值(而不是暫存器:編譯器優化後的結果,即訪問頻度高的變數會先存放在暫存器中,以便提高效率)
11. TCP與UDP的區別,為什麼說TCP能提供可靠資料傳輸?
12. TCP三次握手和四次揮手,為什麼要三次和四次?
13. http與socket
14. 內部類,靜態內部類和非靜態內部類的區別
15. 指標和引用的區別
16. 記憶體優化
17. 資料庫:索引的優缺點,什麼是事務,事務的特性
18. 資料結構:
1) 排序演算法(時間複雜度、空間複雜度、穩定性、會講思路、寫程式碼)
2) 二叉樹,遍歷方式,通過二叉樹的先序遍歷和中序遍歷,得到其後序遍歷(思路+程式)
3) 連結串列:單鏈表和雙鏈表,連結串列逆序輸出
19. 物件鎖和類鎖
20. TCP中怎麼保證資料無差錯傳輸的,校驗和是怎麼得到的?
21. 什麼時候會使用TCP,什麼時候使用UDP?(結合應用層的一些協議)
22. 深拷貝與淺拷貝
23. 異常處理
24. 陣列指標與指標陣列
25. 什麼是過載,什麼是重寫,二者區別
26. 雜湊表和雜湊函式
27. ARP的作用,為什麼要用ARP?
28. 網路層ICMP,其應用:traceroute和ping
29. TCP的擁塞控制方式、流量控制方式
1、 你經常逛的論壇,國外的網站,開原始碼網站
一:作業系統
1. 程序的有哪幾種狀態,狀態轉換圖,及導致轉換的事件。
2. 程序與執行緒的區別。
3. 程序通訊的幾種方式。
4. 執行緒同步幾種方式。(一定要會寫生產者、消費者問題,完全消化理解)
5. 執行緒的實現方式. (也就是使用者執行緒與核心執行緒的區別)
6. 使用者態和核心態的區別。
7. 使用者棧和核心棧的區別。
8. 記憶體池、程序池、執行緒池。(c++程式設計師必須掌握)
9. 死鎖的概念,導致死鎖的原因.
10. 導致死鎖的四個必要條件。
11. 處理死鎖的四個方式。
12. 預防死鎖的方法、避免死鎖的方法。
13. 程序排程演算法。
14. Windows記憶體管理的方式(塊式、頁式、段式、段頁式).
15. 記憶體連續分配方式採用的幾種演算法及各自優劣。
16. 動態連結及靜態連結.
17. 基本分頁、請求分頁儲存管理方式。
18. 基本分段、請求分段儲存管理方式。
19. 分段分頁方式的比較各自優缺點。
20. 幾種頁面置換演算法,會算所需換頁數。(LRU用程式如何實現?)
21. 虛擬記憶體的定義及實現方式。
22. 作業系統的四個特性。
23. DMA。
24. Spooling。
25. 外存分配的幾種方式,及各種優劣。
二:計算機網路
1. 電路交換與分組交換的區別? 優劣對比。
2. OSI有哪幾層,會畫出來,知道主要幾層的各自作用。
3. TCP/IP有哪幾層,會畫出來,知道所有層數的作用,會列舉各層主要的協議名稱。
4. 硬體(MAC)地址的概念及作用。
5. ARP協議的用途 及演算法、在哪一層上會使用arp ?
6. CRC冗餘校驗演算法,反碼和檢驗演算法。
7. 如何實現透明傳輸。
8. 知道各個層使用的是哪個資料交換裝置。(交換機、路由器、閘道器)
9. 路由表的內容。
10. 分組轉發演算法。
11. IP報文的格式,格式的各個欄位的含義要理解。
12. MTU的概念,啥叫路徑MTU? MTU發現機制,TraceRoute(瞭解)。
13. RIP協議的概念 及演算法。
14. ICMP協議的主要功能。
15. 組播和多播的概念,IGMP的用途。
16. Ping協議的實現原理,ping 命令格式。
17. 子網劃分的概念,子網掩碼。
18. IP地址的分類,如何劃分的,及會計算各類地址支援的主機數。
19. DNS的概念,用途,DNS查詢的實現演算法。
20. TCP與UDP的概念,相互的區別及優劣。
21. UDP報文的格式,欄位的意義。
22. TCP 報文的格式,欄位的意義。
23. TCP通過哪些措施,保證傳輸可靠?
24. 三次握手,四次斷開過程。
25. TIME_WAIT狀態的概念及意義。
26. 滑動視窗協議 與 停止等待協議的區別。
27. TCP的流量控制和擁塞控制實現原理(會畫擁塞控制的典型圖)。
28. TCP的快速重傳與快速恢復演算法。
29. TFTP 與 FTP的區別。
30. 阻塞方式和非阻塞方式,阻塞connect與非阻塞connect。(比較難,有興趣可以瞭解)
31. HTTP基本格式。(java程式設計師必須掌握)
三:設計模式
1. 各種常用模式的用途,使用方法。
2. 單例模式的雙重檢查實現。
3. MVC模式
繼續更新中。。。
一:作業系統
1. 程序的有哪幾種狀態,狀態轉換圖,及導致轉換的事件。
2. 程序與執行緒的區別。
3. 程序通訊的幾種方式。
4. 執行緒同步幾種方式。(一定要會寫生產者、消費者問題,完全消化理解)
5. 執行緒的實現方式. (也就是使用者執行緒與核心執行緒的區別)
6. 使用者態和核心態的區別。
7. 使用者棧和核心棧的區別。
8. 記憶體池、程序池、執行緒池。(c++程式設計師必須掌握)
9. 死鎖的概念,導致死鎖的原因.
10. 導致死鎖的四個必要條件。
11. 處理死鎖的四個方式。
12. 預防死鎖的方法、避免死鎖的方法。
13. 程序排程演算法。
14. Windows記憶體管理的方式(塊式、頁式、段式、段頁式).
15. 記憶體連續分配方式採用的幾種演算法及各自優劣。
16. 動態連結及靜態連結.
17. 基本分頁、請求分頁儲存管理方式。
18. 基本分段、請求分段儲存管理方式。
19. 分段分頁方式的比較各自優缺點。
20. 幾種頁面置換演算法,會算所需換頁數。(LRU用程式如何實現?)
21. 虛擬記憶體的定義及實現方式。
22. 作業系統的四個特性。
23. DMA。
24. Spooling。
25. 外存分配的幾種方式,及各種優劣。
二:計算機網路
1. 電路交換與分組交換的區別? 優劣對比。
2. OSI有哪幾層,會畫出來,知道主要幾層的各自作用。
3. TCP/IP有哪幾層,會畫出來,知道所有層數的作用,會列舉各層主要的協議名稱。
4. 硬體(MAC)地址的概念及作用。
5. ARP協議的用途 及演算法、在哪一層上會使用arp ?
6. CRC冗餘校驗演算法,反碼和檢驗演算法。
7. 如何實現透明傳輸。
8. 知道各個層使用的是哪個資料交換裝置。(交換機、路由器、閘道器)
9. 路由表的內容。
10. 分組轉發演算法。
11. IP報文的格式,格式的各個欄位的含義要理解。
12. MTU的概念,啥叫路徑MTU? MTU發現機制,TraceRoute(瞭解)。
13. RIP協議的概念 及演算法。
14. ICMP協議的主要功能。
15. 組播和多播的概念,IGMP的用途。
16. Ping協議的實現原理,ping 命令格式。
17. 子網劃分的概念,子網掩碼。
18. IP地址的分類,如何劃分的,及會計算各類地址支援的主機數。
19. DNS的概念,用途,DNS查詢的實現演算法。
20. TCP與UDP的概念,相互的區別及優劣。
21. UDP報文的格式,欄位的意義。
22. TCP 報文的格式,欄位的意義。
23. TCP通過哪些措施,保證傳輸可靠?
24. 三次握手,四次斷開過程。
25. TIME_WAIT狀態的概念及意義。
26. 滑動視窗協議 與 停止等待協議的區別。
27. TCP的流量控制和擁塞控制實現原理(會畫擁塞控制的典型圖)。
28. TCP的快速重傳與快速恢復演算法。
29. TFTP 與 FTP的區別。
30. 阻塞方式和非阻塞方式,阻塞connect與非阻塞connect。(比較難,有興趣可以瞭解)
31. HTTP基本格式。(java程式設計師必須掌握)
三:設計模式
1. 各種常用模式的用途,使用方法。
2. 單例模式的雙重檢查實現。
3. MVC模式
繼續更新中。。。