1.1 程序執行緒的基本概念
1.1.1 什麼是程序,執行緒,彼此有什麼區別⭐⭐⭐⭐⭐
1.1.2多程序、多執行緒的優缺點⭐⭐⭐⭐
1.1.3什麼時候用程序,什麼時候用執行緒⭐⭐⭐
1.1.4多程序、多執行緒同步(通訊)的方法⭐⭐⭐⭐⭐
1.1.5程序的空間模型⭐⭐⭐⭐
1.1.6程序執行緒的狀態轉換圖 什麼時候阻塞,什麼時候就緒⭐⭐⭐
1.1.7父程序、子程序的關係以及區別⭐⭐⭐⭐
1.1.8什麼是程序上下文、中斷上下文⭐⭐
1.1.9乙個程序可以建立多少執行緒,和什麼有關⭐⭐
1.2 併發,同步,非同步,互斥,阻塞,非阻塞的理解
1.2.1什麼是執行緒同步和互斥⭐⭐⭐⭐⭐
1.2.2執行緒同步與阻塞的關係?同步一定阻塞嗎?阻塞一定同步嗎?⭐⭐⭐⭐
1.2.3併發,同步,非同步,互斥,阻塞,非阻塞的理解⭐⭐⭐⭐⭐
1.3 孤兒程序、殭屍程序、守護程序的概念
1.3.1基本概念⭐⭐⭐⭐⭐
1.3.2如何建立守護程序:⭐⭐
1.3.3正確處理殭屍程序的方法⭐⭐⭐⭐
2.1 c和c++區別、概念相關面試題
2.1.1 new和malloc的區別⭐⭐⭐⭐⭐
2.1.2 malloc的底層實現⭐⭐⭐⭐
2.1.3在1g記憶體的計算機中能否malloc(1.2g)?為什麼?⭐⭐
2.1.4指標與引用的相同和區別;如何相互轉換?⭐⭐⭐⭐⭐
2.1.5 c語言檢索記憶體情況 記憶體分配的方式⭐⭐⭐
2.1.6 extern」c」 的作用⭐⭐⭐
2.1.7標頭檔案宣告時加extern定義時不要加 因為extern可以多次宣告,但只有乙個定義⭐⭐⭐⭐
2.1.8函式引數壓棧順序,即關於__stdcall和__cdecl呼叫方式的理解⭐⭐⭐
2.1.9重寫memcpy()函式需要注意哪些問題⭐⭐
2.1.10陣列到底存放在**⭐⭐⭐
2.1.11 struct和class的區別 ⭐⭐⭐⭐⭐
2.1.12 char和int之間的轉換;⭐⭐⭐
2.1.13 static的用法(定義和用途)⭐⭐⭐⭐⭐
2.1.14 static的用法(定義和用途)⭐⭐⭐⭐⭐
2.1.15const常量和#define的區別(編譯階段、安全性、記憶體占用等) ⭐⭐⭐⭐
2.1.16 volatile作用和用法 ⭐⭐⭐⭐⭐
2.1.17有常量指標 指標常量 常量引用 沒有 引用常量⭐⭐⭐
2.1.18沒有指向引用的指標,因為引用是沒有位址的,但是有指標的引用⭐⭐⭐
2.1.19c/c++中變數的作用域⭐⭐⭐⭐⭐
2.1.20 c++中型別轉換機制?各適用什麼環境?dynamic_cast轉換失敗時,會出現什麼情況?⭐⭐⭐
2.2 繼承、多型相關面試題 ⭐⭐⭐⭐⭐
2.2.1繼承和虛繼承 ⭐⭐⭐⭐⭐
2.2.2多型的類,記憶體布局是怎麼樣的 ⭐⭐⭐⭐⭐
2.2.3被隱藏的基類函式如何呼叫或者子類呼叫父類的同名函式和父類成員變數 ⭐⭐⭐⭐⭐
2.2.4多型實現的三個條件、實現的原理 ⭐⭐⭐⭐⭐
2.2.5對拷貝建構函式 深淺拷貝 的理解 拷貝建構函式作用及用途?什麼時候需要自定義拷貝建構函式?⭐⭐⭐
2.2.6析構函式可以丟擲異常嗎?為什麼不能丟擲異常?除了資源洩露,還有其他需考慮的因素嗎?⭐⭐⭐
2.2.7什麼情況下會呼叫拷貝建構函式(三種情況)⭐⭐⭐
2.2.8析構函式一般寫成虛函式的原因⭐⭐⭐⭐⭐
2.2.9建構函式為什麼一般不定義為虛函式⭐⭐⭐⭐⭐
2.2.10什麼是純虛函式⭐⭐⭐⭐⭐
2.2.11靜態繫結和動態繫結的介紹⭐⭐⭐⭐
2.2.12 c++所有的建構函式 ⭐⭐⭐
2.2.13重寫、過載、覆蓋的區別⭐⭐⭐⭐⭐
2.2.14成員初始化列表的概念,為什麼用成員初始化列表會快一些(效能優勢)?⭐⭐⭐⭐
2.2.15如何避免編譯器進行的隱式型別轉換;(explicit)⭐⭐⭐⭐
3.1 tcp udp
3.1.1 tcp、udp的區別 ⭐⭐⭐⭐⭐
3.1.2 tcp、udp的優缺點⭐⭐⭐
3.1.3 tcp udp適用場景⭐⭐⭐
3.1.4 tcp為什麼是可靠連線⭐⭐⭐⭐
3.1.5典型網路模型,簡單說說有哪些;⭐⭐⭐
3.1.6 http1.1和http1.0的區別⭐⭐⭐
3.1.7 uri(統一資源識別符號)和url(統一資源定位符)之間的區別⭐⭐
3.2 三次握手、四次揮手
3.2.1什麼是三次握手⭐⭐⭐⭐⭐
3.2.2為什麼三次握手中客戶端還要傳送一次確認呢?可以二次握手嗎?⭐⭐⭐⭐
3.2.3為什麼服務端易受到syn攻擊?⭐⭐⭐⭐
3.2.4什麼是四次揮手⭐⭐⭐⭐⭐
3.2.5為什麼客戶端最後還要等待2msl?⭐⭐⭐⭐
3.2.6為什麼建立連線是三次握手,關閉連線確是四次揮手呢?⭐⭐⭐⭐
4.1 排序演算法
4.1.1各種排序演算法的時間空間複雜度、穩定性⭐⭐⭐⭐⭐
4.1.2各種排序演算法什麼時候有最好情況、最壞情況(尤其是快排) ⭐⭐⭐⭐
4.1.3氣泡排序⭐⭐⭐⭐
4.1.4選擇排序⭐⭐⭐⭐
4.1.5插入排序⭐⭐⭐⭐
4.1.6希爾排序⭐⭐⭐⭐
4.1.7歸併排序⭐⭐⭐⭐
4.1.8快速排序⭐⭐⭐⭐⭐
4.1.9快排的partition函式與歸併的merge函式⭐⭐⭐
4.2 stl庫相關
4.2.1 vector list異同⭐⭐⭐⭐⭐
4.2.2 vector記憶體是怎麼增長的vector的底層實現⭐⭐⭐⭐
4.2.3 vector和deque的比較⭐⭐⭐⭐
4.2.4為什麼stl裡面有sort函式list裡面還要再定義乙個sort⭐⭐⭐
4.2.5 stl底層資料結構實現⭐⭐⭐⭐
4.2.6利用迭代器刪除元素會發生什麼?⭐⭐⭐⭐
4.2.7 map是如何實現的,查詢效率是多少⭐⭐⭐⭐⭐
4.2.8幾種模板插入的時間複雜度 ⭐⭐⭐⭐⭐
5.1 linux核心相關
5.1.1 linux核心的組成⭐⭐
5.1.2使用者空間與核心通訊方式有哪些?⭐⭐⭐⭐⭐
5.1.3系統呼叫read()/write(),核心具體做了哪些事情⭐⭐
5.1.4系統呼叫的作用⭐⭐⭐⭐⭐
5.1.5核心態,使用者態的區別⭐⭐⭐⭐⭐
5.1.6 bootloader核心 根檔案的關係⭐⭐⭐⭐
5.1.7 bootloader多數有兩個階段的啟動過程:⭐⭐⭐
5.1.8 linux的核心是由bootloader裝載到記憶體中的?⭐⭐⭐
5.1.9為什麼需要bootloader⭐⭐⭐⭐
5.1.10 linux核心同步方式總結⭐⭐⭐⭐
5.1.11為什麼自旋鎖不能睡眠 而在擁有訊號量時就可以?⭐⭐⭐⭐
5.1.12 linux下檢查記憶體狀態的命令⭐⭐⭐
5.2 其他作業系統常見面試題
5.2.1大小端的區別以及各自的優點,哪種時候用⭐⭐⭐⭐⭐
5.2.2 乙個程式從開始執行到結束的完整過程(四個過程)⭐⭐⭐⭐⭐
5.2.3什麼是堆,棧,記憶體洩漏和記憶體溢位?⭐⭐⭐⭐
5.2.4堆和棧的區別⭐⭐⭐⭐⭐
5.2.5死鎖的原因、條件 建立乙個死鎖,以及如何預防⭐⭐⭐⭐⭐
5.2.6硬鏈結與軟鏈結的區別;⭐⭐⭐⭐⭐
5.2.7虛擬記憶體,虛擬位址與實體地址的轉換⭐⭐⭐⭐
5.2.8計算機中,32bit與64bit有什麼區別⭐⭐⭐
5.2.9中斷和異常的區別⭐⭐⭐⭐⭐
5.2.10中斷怎麼發生,中斷處理大概流程⭐⭐⭐⭐
5.2.11 linux 作業系統掛起、休眠、關機相關命令⭐⭐
5.2.12資料庫為什麼要建立索引,以及索引的缺點⭐⭐
6.1 cpu 記憶體 虛擬記憶體 磁碟/硬碟 的關係⭐⭐⭐
6.2 cpu內部結構⭐⭐⭐⭐
6.3 arm結構處理器簡析 ⭐⭐
6.4波特率是什麼,為什麼雙方波特率要相同,高低波特率有什麼區別;⭐⭐⭐⭐
6.5arm和dsp有什麼區別⭐⭐
6.6 rom ram的概念**⭐⭐⭐
6.7 io口工作方式:上拉輸入 下拉輸入 推挽輸出 開漏輸出⭐⭐⭐⭐
6.8扇區 塊 頁 簇的概念⭐⭐⭐⭐
6.9簡述處理器在讀記憶體的過程中,cpu核、cache、mmu如何協同工作?畫出cpu核、cache、mmu、記憶體之間的關係示意圖加以說明⭐⭐
6.10請說明匯流排介面usrt、i2c、usb的異同點(串/並、速度、全/半雙工、匯流排拓撲等)⭐⭐⭐⭐⭐
6.11什麼是非同步串列埠和同步串列埠⭐⭐⭐⭐⭐
6.12 i2c時序圖⭐⭐⭐⭐⭐
嵌入式面試題
15 typedef 在c語言中頻繁用以宣告乙個已經存在的資料型別的同義字。也可以用預處理器做類似的事。例如,思考一下下面的例子 define dps struct s typedef struct s tps 以上兩種情況的意圖都是要定義dps 和 tps 作為乙個指向結構s指標。哪種方法更好呢?...
嵌入式面試題
1.main int ptr int a 1 printf d d a 1 ptr 1 這段程式的輸出是 a 2 2 b 2 1 c 2 5 d 以上均不是 2.考查自加操作 main 這段程式的輸出是 a i 4 j 2 b i 3 j 2 c i 3 j 4 d i 3 j 6 3.此題考查的是...
嵌入式面試題
以下是我找嵌入式面試時遇到的一些問題,答案以後慢慢補充。1.incline和巨集定義的區別 3.linux自旋鎖 4.程序,執行緒的概念 5.strcpy的使用,具體實現 6.雙向鍊錶的插入,刪除 7.大端小端概念 8.寫一段c程式檢測cpu是32位還是64位 9.malloc和new的使用 10....