日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结...

發(fā)布時間:2024/4/14 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

網(wǎng)站地址:http://www.itmian4.com


基礎(chǔ)篇:操作系統(tǒng)、計算機(jī)網(wǎng)絡(luò)、設(shè)計模式

一:操作系統(tǒng)

1. 進(jìn)程的有哪幾種狀態(tài),狀態(tài)轉(zhuǎn)換圖,及導(dǎo)致轉(zhuǎn)換的事件。

2. 進(jìn)程與線程的區(qū)別。

3. 進(jìn)程通信的幾種方式。

4. 線程同步幾種方式。(一定要會寫生產(chǎn)者、消費(fèi)者問題,完全消化理解)

5. 線程的實現(xiàn)方式. (也就是用戶線程與內(nèi)核線程的區(qū)別)

6. 用戶態(tài)和核心態(tài)的區(qū)別。

7. 用戶棧和內(nèi)核棧的區(qū)別。

8. 內(nèi)存池、進(jìn)程池、線程池。(c++程序員必須掌握)

9. 死鎖的概念,導(dǎo)致死鎖的原因.

10. 導(dǎo)致死鎖的四個必要條件。

11. 處理死鎖的四個方式。

12. 預(yù)防死鎖的方法、避免死鎖的方法。

13. 進(jìn)程調(diào)度算法。(周轉(zhuǎn)時間 = 程序結(jié)束時間 -- 開始服務(wù)時間、帶權(quán)周轉(zhuǎn)時間= 周轉(zhuǎn)時間 / 要求服務(wù)時間)

14. Windows內(nèi)存管理的方式(塊式、頁式、段式、段頁式).

15. 內(nèi)存連續(xù)分配方式采用的幾種算法及各自優(yōu)劣。

16. 動態(tài)鏈接及靜態(tài)鏈接.

17. 基本分頁、請求分頁儲存管理方式。

18. 基本分段、請求分段儲存管理方式。

19. 分段分頁方式的比較各自優(yōu)缺點(diǎn)。

20. 幾種頁面置換算法,會算所需換頁數(shù)。(LRU用程序如何實現(xiàn)?)

21. 虛擬內(nèi)存的定義及實現(xiàn)方式。

22. 操作系統(tǒng)的四個特性。

23. DMA。

24. Spooling。

25. 外存分配的幾種方式,及各種優(yōu)劣。

二:計算機(jī)網(wǎng)絡(luò)
1. 電路交換與分組交換的區(qū)別?優(yōu)劣對比。
2. OSI有哪幾層,會畫出來,知道主要幾層的各自作用。
3. TCP/IP有哪幾層,會畫出來,知道所有層數(shù)的作用,會列舉各層主要的協(xié)議名稱。
4. 硬件(MAC)地址的概念及作用。
5. ARP協(xié)議的用途 及算法、在哪一層上會使用arp ?
6. CRC冗余校驗算法,反碼和檢驗算法。
7. 如何實現(xiàn)透明傳輸。
8. 知道各個層使用的是哪個數(shù)據(jù)交換設(shè)備。(交換機(jī)、路由器、網(wǎng)關(guān))
9. 路由表的內(nèi)容。
10. 分組轉(zhuǎn)發(fā)算法。
11. IP報文的格式,格式的各個字段的含義要理解。
12.MTU的概念,啥叫路徑MTU? MTU發(fā)現(xiàn)機(jī)制,TraceRoute(了解)。
13.RIP協(xié)議的概念及算法。
14.ICMP協(xié)議的主要功能。
15.組播和廣播的概念,IGMP的用途。(環(huán)回地址、廣播地址)
16.Ping協(xié)議的實現(xiàn)原理,ping 命令格式。
17. 子網(wǎng)劃分的概念,子網(wǎng)掩碼。
18. IP地址的分類,如何劃分的,及會計算各類地址支持的主機(jī)數(shù)。
19.DNS的概念,用途,DNS查詢的實現(xiàn)算法。
20. TCP與UDP的概念,相互的區(qū)別及優(yōu)劣。
21.UDP報文的格式,字段的意義。
22. TCP 報文的格式,字段的意義。
23.TCP通過哪些措施,保證傳輸可靠?
24. 三次握手,四次斷開過程。
25. TIME_WAIT狀態(tài)的概念及意義。
26.滑動窗口協(xié)議 與停止等待協(xié)議的區(qū)別。
27. TCP的流量控制和擁塞控制實現(xiàn)原理(會畫擁塞控制的典型圖)。
28.TCP的快速重傳與快速恢復(fù)算法。
29.TFTP 與 FTP的區(qū)別。
30.阻塞方式和非阻塞方式,阻塞connect與非阻塞connect。(比較難,有興趣可以了解)
31. HTTP基本格式。(java程序員必須掌握)
三:設(shè)計模式
1. 各種常用模式的用途,使用方法(類圖)。
2. 單例模式的雙重檢查實現(xiàn)。
3. MVC模式


提高篇:WIN32、MFC與Linux

一: WIN32
1. Win32應(yīng)用程序的基本類型.
2. 創(chuàng)建win32窗口程序的幾個步驟,及使用到的函數(shù)。
3. nmake 與 makefile。
4. 有哪些字符集? Win32對于各種字符集如何進(jìn)行兼容及轉(zhuǎn)換? (wchar_t、TCHAR、TEXT() )。
5. 怎么創(chuàng)建一個子窗口?在哪進(jìn)行設(shè)置?
6. 窗口類的分類,如何創(chuàng)建一個應(yīng)用程序全局窗口類。
7. Win32窗口程序運(yùn)行機(jī)制與控制臺程序的運(yùn)行機(jī)制有何區(qū)別?
8. Getmessage函數(shù)的作用,與Peekmessage函數(shù)的區(qū)別。
9. 發(fā)送WM_QUIT消息使程序終止的內(nèi)部過程。
11. TranslateMessage及 DispatchMessage的作用。
12. SendMessage與PostMessage的區(qū)別。
13. Win32消息機(jī)制獲取消息的過程(先查看什么消息?再查看什么消息?)
14. 知道有哪幾類主要的消息。(WM_CREATE, WM_DESTROY, WM_SIZE, WM_SYSCOMMAND, WM_COMMAND, WM_PAINT, 鼠標(biāo)消息, 鍵盤消息)。
15. 定時器如何使用。
16. 用戶自定義消息如何定義。
17. 創(chuàng)建菜單、設(shè)置菜單的函數(shù),在哪處理菜單命令的消息。
18. 加速鍵如何使用?
19. GDI繪圖對象,使用的步驟,及函數(shù)。
20. 使用位圖的步驟及用到的主要函數(shù)。
21. 可用于文字繪制的API函數(shù)。
22. 有模式對話框與無模式對話框的區(qū)別,創(chuàng)建步驟。收到的創(chuàng)建消息是什么?
23. 子控件和父窗口通過什么進(jìn)行通信? 父窗口在哪里處理子窗口發(fā)送的消息?
24. 有哪些常見的子控件?(靜態(tài)框、編輯框、按鈕、listbox、comboBox、滾動條)25. 什么樣的控件支持自繪制?
26. 動態(tài)庫與靜態(tài)庫的區(qū)別。
27. Win32里面怎樣用靜態(tài)庫? C++程序在引用c的靜態(tài)庫時,需要注意什么?
28. Win32里面動態(tài)庫有哪幾種導(dǎo)出方式,有哪幾種導(dǎo)入方式?(注意c++的導(dǎo)出方式)
29. Win32里面文件打開和關(guān)閉的API。
30. Windows地址空間的劃分。
31. Windows 內(nèi)存使用的幾種方式及相應(yīng)的函數(shù)(虛擬內(nèi)存、堆內(nèi)存、棧內(nèi)存)。
32. Malloc內(nèi)部調(diào)用A函數(shù),A函數(shù)調(diào)用B函數(shù)。A和B分別是什么?
33. 內(nèi)存映射文件的作用。主要函數(shù)。
34. 創(chuàng)建進(jìn)程和打開進(jìn)程用什么函數(shù)? 有什么區(qū)別?
35. 創(chuàng)建線程用什么函數(shù)?
36. Waitforsingleobject與Waitformultiobjects的區(qū)別。Waitforsingleobject的第二個參數(shù)為0表示什么意思?37. 關(guān)閉線程和關(guān)閉進(jìn)程的函數(shù)分別是什么?
38. 線程局部存儲(TLS)的意義,如何指定一個變量的TLS屬性。
39. Win32線程同步提供的方式,及主要函數(shù)為什么?
40. 提供的同步措施中哪些是內(nèi)核對象? 試比較互斥量和臨界區(qū)。

二:MFC
1. MFC包含哪幾類程序? 其中MFC應(yīng)用程序又包含哪幾類?
2. MFC的中的大多數(shù)類都繼承自哪個類?
3. MFC主要要用到哪幾個類?及其各個類的作用。
4. MFC中有哪6類核心機(jī)制?Cobject中封裝了哪些機(jī)制?
5. 在哪個類的什么函數(shù)中進(jìn)行MFC程序初始化? 相當(dāng)于main功能的函數(shù)。
6. MFC應(yīng)用程序的啟動機(jī)制的實現(xiàn)。(幾個步驟及相關(guān)函數(shù))
7. 窗口的創(chuàng)建及窗口處理函數(shù)機(jī)制的實現(xiàn)。(幾個步驟及相關(guān)用到函數(shù))
8. 消息映射機(jī)制的原理及實現(xiàn)。宏。(查找消息處理函數(shù)的幾個步驟及其函數(shù))
9. MFC的消息分類。自注冊消息用什么函數(shù)進(jìn)行注冊?消息映射宏是什么?
10. MFC菜單、工具欄、狀態(tài)欄所用的類是什么?
11. 怎么定義一個視圖窗口?
12. 劃分窗口使用什么類? 劃分窗口有哪兩類,有什么區(qū)別?
13. 運(yùn)行時類信息 機(jī)制的宏,及原理。CRuntimeClass的內(nèi)容,isKindOf實現(xiàn)方法。
14. 動態(tài)創(chuàng)建 機(jī)制的宏,及實現(xiàn)。與運(yùn)行時類信息在內(nèi)容添加上的區(qū)別?
15. 消息的派發(fā)會經(jīng)過哪幾個類?一般在哪個類里進(jìn)行處理?SetActiveView的作用。
16. 單文檔、多文檔模板類是什么? 保存模板類用什么函數(shù)?新建模板用什么函數(shù)?
17. 單文檔視圖的創(chuàng)建過程及所用到的相關(guān)函數(shù)。
18. MFC繪圖有哪幾類DC?各自的類名,及區(qū)別。
19. MFC有哪幾類繪圖對象?各自的類名。
20. MFC有哪幾類數(shù)據(jù)集合類?CMAP的底層實現(xiàn)?
21. MFC的文件類是什么?文件查找類是什么?
22. 序列化機(jī)制 的宏,怎么使用? 執(zhí)行>>和<<時進(jìn)行的內(nèi)部操作及其相應(yīng)函數(shù)。
23. MFC的對話框的種類,各自怎么使用?及相關(guān)函數(shù)。
24. 定義對話框數(shù)據(jù)交換的步驟,及使用方法,實現(xiàn)原理。
25. 通用對話框有哪些,試舉例。
26. MFC常用的通用控件有哪些?舉出類名。
27. MFC的動態(tài)庫有哪幾種類型?擴(kuò)展庫一般用來做什么?
28. MFC的線程有哪幾類? 相互有什么區(qū)別?各自的創(chuàng)建方法是什么?
29. VC環(huán)境下可以使用哪幾類socket? 其中MFC的socket類 有哪幾種,各自區(qū)別?類名是什么?用什么函數(shù)初始化MFC的socket庫。




三:Linux基本命令
1. 絕對路徑用什么符號表示?當(dāng)前目錄、上層目錄用什么表示?主目錄用什么表示? 切換目錄用什么命令?
2. 怎么查看當(dāng)前進(jìn)程?怎么執(zhí)行退出?怎么查看當(dāng)前路徑?
3. 怎么清屏?怎么退出當(dāng)前命令?怎么執(zhí)行睡眠?怎么查看當(dāng)前用戶id?查看指定幫助用什么命令?
4. Ls 命令執(zhí)行什么功能? 可以帶哪些參數(shù),有什么區(qū)別?
5. 建立軟鏈接(快捷方式),以及硬鏈接的命令。
6. 目錄創(chuàng)建用什么命令?創(chuàng)建文件用什么命令?復(fù)制文件用什么命令?
7. 文件權(quán)限修改用什么命令?格式是怎么樣的?
8. 查看文件內(nèi)容有哪些命令可以使用?
9. 隨意寫文件命令?怎么向屏幕輸出帶空格的字符串,比如”hello world”?
10. 終端是哪個文件夾下的哪個文件?黑洞文件是哪個文件夾下的哪個命令?
11. 移動文件用哪個命令?改名用哪個命令?
12. 復(fù)制文件用哪個命令?如果需要連同文件夾一塊復(fù)制呢?如何需要有提示功能呢?
13. 刪除文件用哪個命令?如果需要連目錄及目錄下文件一塊刪除呢?刪除空文件夾用什么命令?
14. Linux下命令有哪幾種可使用的通配符?分別代表什么含義?
15. 用什么命令對一個文件的內(nèi)容進(jìn)行統(tǒng)計?(行號、單詞數(shù)、字節(jié)數(shù))
16. Grep命令有什么用? 如何忽略大小寫? 如何查找不含該串的行?
17. Linux中進(jìn)程有哪幾種狀態(tài)?在ps顯示出來的信息中,分別用什么符號表示的?
18. 怎么使一個命令在后臺運(yùn)行?
19. 利用ps怎么顯示所有的進(jìn)程? 怎么利用ps查看指定進(jìn)程的信息?
20. 哪個命令專門用來查看后臺任務(wù)?
21. 把后臺任務(wù)調(diào)到前臺執(zhí)行使用什么命令?把停下的后臺任務(wù)在后臺執(zhí)行起來用什么命令?
22. 終止進(jìn)程用什么命令? 帶什么參數(shù)?
23. 怎么查看系統(tǒng)支持的所有信號?
24. 搜索文件用什么命令? 格式是怎么樣的?
25. 查看當(dāng)前誰在使用該主機(jī)用什么命令? 查找自己所在的終端信息用什么命令?
26. 使用什么命令查看用過的命令列表?
27. 使用什么命令查看磁盤使用空間? 空閑空間呢?
28. 使用什么命令查看網(wǎng)絡(luò)是否連通?
29. 使用什么命令查看ip地址及接口信息?
30. 查看各類環(huán)境變量用什么命令?
31. 通過什么命令指定命令提示符?
32. 查找命令的可執(zhí)行文件是去哪查找的? 怎么對其進(jìn)行設(shè)置及添加?
33. 通過什么命令查找執(zhí)行命令?34. 怎么對命令進(jìn)行取別名?

四:Linux編程
1. 列舉Linux內(nèi)存管理相關(guān)的幾個函數(shù),各自有什么功能?
2. GCC只編譯的選項是什么?只進(jìn)行預(yù)處理的選項是什么?在命令行定義宏的選項是什么?
3. Linux靜態(tài)庫的使用,怎么創(chuàng)建一個靜態(tài)庫? 怎么使用一個靜態(tài)庫?靜態(tài)庫文件的后綴名是什么?靜態(tài)庫的命名規(guī)范。
4. nm 工具的作用,ldd工具的作用。
5. Linux動態(tài)庫的使用,怎么創(chuàng)建一個動態(tài)庫? 動態(tài)庫文件的后綴名是什么?怎么使用一個動態(tài)庫?動態(tài)庫的命名規(guī)范? 系統(tǒng)默認(rèn)的動態(tài)庫的查找路徑?動態(tài)庫顯示連接所使用的系統(tǒng)庫是什么?
6. Linux下make 與makefile。用什么參數(shù)指定makefile文件? 什么是默認(rèn)的makefile文件。
7. 在哪個文件夾下存有進(jìn)程運(yùn)行時的所有信息?
8. 每個程序默認(rèn)打開哪三個文件設(shè)備?
9. 操作文件描述符的讀寫函數(shù)是什么?打開文件描述符以及關(guān)閉文件描述符的函數(shù)?
10. Fcntl函數(shù)主要的幾個作用。
11. 創(chuàng)建進(jìn)程的幾個函數(shù),及各自區(qū)別。
12. 父進(jìn)程先結(jié)束,子進(jìn)程會變?yōu)?#xff1f; 子進(jìn)程先結(jié)束,子進(jìn)程會變?yōu)?#xff1f;
13. 怎么使父進(jìn)程回收子進(jìn)程? 相關(guān)的幾個函數(shù)。
14. 子進(jìn)程在創(chuàng)建時與父進(jìn)程的內(nèi)存資源的復(fù)制問題。
15. 中斷信號、終止信號、定時器信號的宏是什么?
16. 在程序中注冊信號和發(fā)送信號用什么函數(shù)?
17. 信號的可靠與不可靠的含義。哪些信號是可靠的?哪些信號是不可靠的?
18. 信號屏蔽用什么函數(shù)? SigSuspend的作用? Sigpending的作用?
19. 信號處理函數(shù)處理信號時是否會被信號中斷?
20. 最新版本的信號發(fā)送與處理函數(shù)?與老版本的發(fā)送與數(shù)據(jù)函數(shù)有什么區(qū)別?
21. Linux下進(jìn)程有哪些通信方式(IPC)?
22. TCP服務(wù)器編程模型。
23. UDP服務(wù)器編程模型。
24. TCP編程特征,由于每次不定長數(shù)據(jù)到達(dá),則一般使用什么選項?
25. Selected模型是什么? 相比而言多進(jìn)程實現(xiàn)方式有什么區(qū)別?Selected、epoll模型、poll模型的區(qū)別。
26. 常用的socket選項有哪些?利用哪個函數(shù)來設(shè)置socket選項?
27. 怎么發(fā)送和設(shè)置帶外(OOB)數(shù)據(jù)?
28. Linux 下多線程的庫是什么? 利用哪個函數(shù)創(chuàng)建線程?利用哪個函數(shù)強(qiáng)制結(jié)束線程?主線程等待子線程結(jié)束時使用的函數(shù)?
29. 線程怎樣在被迫退出時能做一些善后處理?以及怎么用linux特有的方式處理?

算法篇:算法與數(shù)據(jù)結(jié)構(gòu)
一:算法
1. 算法的幾個特征是什么。
2. 算法復(fù)雜性的定義。大O、θ、、小o分別表示的含義。
3. 遞歸算法的定義、遞歸算法的兩要素。
4. 分治算法的思想,經(jīng)典的分治算法(全排列、二分搜索、歸并排序、快速排序、線性時間選擇、最接近點(diǎn)對問題)。
5. 動態(tài)規(guī)劃算法解題框架,動態(tài)規(guī)劃算法的兩個要素是什么?備忘錄方法是什么?
6. 經(jīng)典的動態(tài)規(guī)劃問題(矩陣連乘問題、最長公共子序列問題、0-1背包問題)。
7. 貪心算法的思想,貪心算法的兩個要素。
8. 經(jīng)典的貪心問題(活動安排問題、背包問題、裝載問題、哈夫曼編碼、單源最短路徑、最小生成樹問題)。9. 回溯法的思想,回溯法中有哪兩種典型的模型。
10. 經(jīng)典的回溯算法(n后問題、0-1背包問題、旅行售貨商問題)。
11. 分支限界法思想,有哪兩種分支限界法。
12. 經(jīng)典的分支限界算法(0-1背包問題、旅行售貨商問題)。

二:數(shù)據(jù)結(jié)構(gòu)
1. 數(shù)據(jù)結(jié)構(gòu)的定義。
2. 棧的兩個應(yīng)用:括號匹配和表達(dá)式的計算。是怎么應(yīng)用的?表達(dá)式計算用的是哪種表達(dá)方式?有什么好處?
3. 字符串匹配算法:樸素的匹配算法、KMP算法。
4. 二叉樹前序、中序、后序遞歸遍歷算法。二叉樹前序非遞歸遍歷算法。
5. 堆,建堆算法,堆的插入和刪除算法,堆排序。
6. 哈希。哈希函數(shù)的有哪些種?余數(shù)的取法? 處理沖突的方法? 閉散列方法有哪些?
7. 二叉搜索樹的搜索、插入、刪除。時間復(fù)雜度。
8. 二叉平衡樹的插入結(jié)點(diǎn)的原理,有哪幾種旋轉(zhuǎn)方式?分別適用于哪種情況。分析二叉平衡樹的時間復(fù)雜度。
9. 紅黑樹的定義,紅黑樹的性能分析和與二叉平衡樹的比較。
10. 圖有哪些儲存表示。
11. 鏈表插入排序、鏈表歸并排序。
12. 常見的有哪幾種排序算法,試比較其時間復(fù)雜度,以及是否穩(wěn)定,及各自使用的情形。
13. 常用分配排序有哪幾種? 基數(shù)排序的定義,分類及原理。
14. 外部排序的過程。
15. B樹、B+樹、Trie的概念及用途,添加刪除結(jié)點(diǎn)的原理。


轉(zhuǎn)載于:https://blog.51cto.com/1089580/1306259

總結(jié)

以上是生活随笔為你收集整理的牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。