面試復習重點——數據結構、操作系統、計算機網絡、數據庫。
必看書籍:劍指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
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模式
繼續更新中。。。
面試復習重點——數據結構、操作系統、計算機網絡、數據庫。