1. 程式人生 > >面試複習重點——資料結構、作業系統、計算機網路、資料庫

面試複習重點——資料結構、作業系統、計算機網路、資料庫

必看書籍:劍指offer程式設計師面試寶典

來自:騰訊、搜狐、網易、烽火、百度、大眾點評、美團、風行


1. 死鎖是什麼?什麼情況下產生?怎麼解決?

2. 設計模式(尤其是單例模式,要會寫該模式的程式框架,要注意同步問題,怎麼實現在要用時才建立)

3. 執行緒的同步?為什麼要同步?執行緒間通訊方式。

4. 程序與執行緒的區別,程序間通訊方式。

5. 容器類:hashmaphashtable的區別,arraylistlinkedlist的區別

6. 為什麼要用多執行緒,實現多執行緒的兩種方式,有什麼區別?

7. JNI介面,C++extern C的作用

8. C的記憶體分配,C中堆的記憶體分配

9. 指標:int (*s[10])(int)解釋其含義(課本上有)

10. Volatile的作用:儲存特殊地址的穩定訪問,直接從記憶體中讀值(而不是暫存器:編譯器優化後的結果,即訪問頻度高的變數會先存放在暫存器中,以便提高效率)

11. TCPUDP的區別,為什麼說TCP能提供可靠資料傳輸?

12. TCP三次握手和四次揮手,為什麼要三次和四次?

13. httpsocket

區別

14. 內部類,靜態內部類和非靜態內部類的區別

15. 指標和引用的區別

16. 記憶體優化

17. 資料庫:索引的優缺點,什麼是事務,事務的特性

18. 資料結構:

1) 排序演算法(時間複雜度、空間複雜度、穩定性、會講思路、寫程式碼)

2) 二叉樹,遍歷方式,通過二叉樹的先序遍歷和中序遍歷,得到其後序遍歷(思路+程式)

3) 連結串列:單鏈表和雙鏈表,連結串列逆序輸出

19. 物件鎖和類鎖

20. TCP中怎麼保證資料無差錯傳輸的,校驗和是怎麼得到的?

21. 什麼時候會使用TCP,什麼時候使用UDP?(結合應用層的一些協議)

22. 深拷貝與淺拷貝

23. 異常處理

24. 陣列指標與指標陣列

25. 什麼是過載,什麼是重寫,二者區別

26. 雜湊表和雜湊函式

27. ARP的作用,為什麼要用ARP

28. 網路層ICMP,其應用:tracerouteping

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. TCPUDP的概念,相互的區別及優劣。

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. TCPUDP的概念,相互的區別及優劣。

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模式


繼續更新中。。。