嵌入式系统开发方向的面试题总结
面試題總結:
?
1 Linux常用命令
2 Linux設置環境變量,舉例說明
3 單例模式,及其線程安全
4 打開一個網站的時候,發生了什么
5 10MB大小的數據排序,有10MB的內存,如何排序
6 稱重的方法(從100個硬幣中找出最輕的那個假幣)
7 用兩種方法(占臨時內存最少/最快),寫出從字符串里找到某個字符或者莫個字符串出現的所有位置的程序
8 如何創建多線程
9 多線程如何進行信息交互
10 多線程共用一個數據變量需要注意什么
11 Http請求的過程與原理
12 TCP連接的特點
13 TCP連接如何保證安全可靠的
14 為什么TCP連接需要三次握手,兩次不可以嗎,為什么
15 AOP的原理
16 那么你說說代理的實現原理唄
17 什么是線程池?如果讓你設計一個動態大小的線程池,如何設計,應該有哪些方法?
18 什么是死鎖
19 數據庫中什么是事務?事務的隔離級別?事務的四個特性?什么是臟讀,幻讀,不可重復讀?
20 數據庫索引的結構有哪些?我說B樹和B+樹,他說只有這兩個嗎。我又說全文倒排索引。然后介紹B+樹的結構。
21 數據庫中的分頁查詢語句怎么寫?
22 什么是一致性哈希?用來解決什么問題?
23 歸并排序的過程?時間復雜度?空間復雜度?
24 你平常用什么排序?快速排序。說說在那些場景下適用,哪些場景下不適用。
25 TCP和UDP分別有什么優缺點?如何改進TCP?
26 棧溢出和內存溢出有什么區別?
27 給你一萬個數,如何找出里面所有重復的數?用所有你能想到的方法,時間復雜度和空間復雜度分別是多少?
28 給你一個數組,如何里面找到和為K的兩個數?
29 什么時候會出現內存泄露?你在實際的項目中有碰到過內存泄露啊?
30 close_wait
31 time_wait 的作用
32 分治策略是什么
33 快排退化為冒泡的情況分析
34 快排的原理,如何利用的分治策略,實現快排
35 快排哪種情況下,不適合使用(數據基本有序),為什么會這樣
36 面向對象和面向過程的區別(我只回答了面向對象的 封裝繼承和多態)
37 銀行家算法
38 什么響應狀態300、200、500
39 cookie
40 N * N的方格紙,里面有多少個正方形
41 兩個數組求交集
42 現在下載速度很慢,試從網絡協議的角度分析原因,并優化(網絡的5層都可以涉及)
43 比如兩個數組求交集的那個題,講了hash方法之后,要求對hash做優化,上億個QQ出現極端的hash沖突怎么辦?
44 一共憋了三種方法,嵌套哈希,分治,紅黑樹才放我過去
45 按照A、B、...、Z、AA、AB、...、ZZ、AAA 的序列,給出字符串返回序號。二十六進制,說了下思路寫出來了。
46 給出一個個微信用戶的好友關系對,將這些用戶分成兩組,每組內的用戶全都互相不是好友。講了下思路,面試官說復雜度太高怎么辦?想了好久都不知道怎么辦,就下一題了。 ?是圖的二著色問題么?不知道大家有什么好的想法
47 環形圈內有n個加油站,加油站內的油剛好夠跑一圈,給出每個加油站的距離和里面的油量,找到夠油跑完一圈的路線。
48 C++中的虛函數是怎么實現的
49 什么是多態?
50 用過外觀模式,設計模式
51 TCP滑動窗口機制
52 TCP擁塞控制機制
53 socket模型
54 宏、const
55 模板
56 虛析構
57 虛函數實現機制、虛表、虛指針
58 vector與list的區別,map是如何實現的,查找效率是多少
59 extern 關鍵字有什么用
60 malloc和new的區別,能否malloc(1.2G)
61 內存池實現
62 進程間通信機制
63 Linux ps命令,以及看內存當前使用狀態的命令
64 進程與線程的區別,共享的數據
65 進程的內存空間
66 大整數加、減、乘、除、求模運算實現
67 找出一個數組中出現一半的數(肯能沒有一個數出現過一半)
68 很多整數,找其中出現次數最多的那個數
69 單鏈表翻轉(兩個指針如何實現)、查找、刪除、插入
70 雙鏈表排序
71 有序鏈表合并(遞歸)
72 判斷一個整數是否是2的整數次冪.(n&(n-1))
73 二分查找(注意邊界條件)
74 常見排序算法的實現以及穩定性(快排跟歸并考的很多)
75 匹配(KMP算法)
76 字符串翻轉(O(n))
77 最長遞增子序列(nlogn的算法)
78 鏈表判斷是否有環,環的入口,兩個鏈表是否相交(快慢指針)。
79 指定一個數組,求2個數的和等于指定的和(某一個數),如果是3,4,5,n個等于個的和(某一個數)呢?(可以看作背包問題)
80 跳臺階問題
81 紅黑樹的性質以及插入和刪除
82 解析XML文件
83 千萬級的用戶,提供一個服務,該服務有很多模塊,現在有一個底層模塊需要優化,問怎么實現,在不影響其他服務模塊以及用戶體驗的情況下。(面IEG)
84 卡特蘭數以及公式推導(應多很多)
85 未知大小的文件,翻轉整個文件
86 如果內存中有個cache存儲qq號和最近登錄時間問怎么樣做hit和淘汰
87 檢測短信敏感詞
88 大數據問題
89 什么是二叉平衡樹,如何插入節點,刪除節點,說出關鍵步驟。
90 Linux下如何進行進程調度的?
91 常用的hash算法有哪些?
92 如何理解分布式鎖?
93 什么是一致性哈希?
94 數據庫中的范式有哪些?
95 數據庫中的索引的結構?什么情況下適合建索引?
96 線程同步與阻塞的關系?同步一定阻塞嗎?阻塞一定同步嗎?
97 同步和異步有什么區別?
98 如何創建單例模式?說了雙重檢查,他說不是線程安全的。如何高效的創建一個線程安全的單例?
99 你知道的開源協議有哪些?
100 你知道的開源軟件有哪些?
101 操作系統如何進行分頁調度?
102 https和http的區別,RSA是什么,數字簽名是什么;
103 守護、僵尸、孤兒進程這種概念
104 select/poll/epoll的區別的時候,這題爛大街的答案就是前兩個遍歷后者回調,所以后者效率高,我答的更加深一點:select內部是數組實現、poll內部是鏈表實現,所以select有最大fd限制,poll沒有限制(系統資源假設無窮大的話),它倆都有用戶態到內核態拷貝的過程,兩者的切換和數據拷貝都很消耗性能,而epoll是內部是一棵紅黑樹,(你要是不懂紅黑樹就說內部是哈希表,因為epoll以前是哈希表,現在是紅黑樹,這個點說錯了面試官也不會太責罰,他也不一定知道),這個數據結構效率很高,epoll還沒有內核和用戶態的切換,因為epoll內部采用了共享內存機制,共享內存就這特點。
105 Linux軟連接,硬鏈接
106 樹的LL,LR,RR,RL
107 數組中的a={},a,&a,&a[0]等,二維數組
108 OS常用的調度算法 FCFS,SPF,HRN等
109 promise的狀態
110 str類函數的自己實現
111 process和thread的區別
112 單鏈表快速排序
113 Linux啟動的過程
114 文本處理系列的命令和查找系列的組合命令、find awk sed
115 紅黑樹的實現
116 Linux的各類調度算法
117 ospf rep 擁塞控制
118 大端小端
119 不可以重載的運算符
120 雙鏈表快速排序
121 分布式
122 網絡字節序是大段
123 SNMP的端口是160傳輸數據161是告警
124 TCP和UDP的端口號是獨立的
125 進程和線程的區別。
126 死鎖的必要條件,怎么處理死鎖。
127 Window內存管理方式:段存儲,頁存儲,段頁存儲。
128 進程的幾種狀態。
129 IPC幾種通信方式。
130 什么是虛擬內存。
131 虛擬地址、邏輯地址、線性地址、物理地址的區別。
132 OSI與TCP/IP各層的結構與功能,都有哪些協議。
133 TCP與UDP的區別。
134 TCP報文結構。
135 TCP的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT的作用。
136 TCP擁塞控制。
137 TCP滑動窗口與回退N針協議。
138 Http的報文結構。
139 Http1.1和Http1.0的區別
140 Http怎么處理長連接。
141 Cookie與Session的作用于原理。
142 電腦上訪問一個網頁,整個過程是怎么樣的:DNS、HTTP、TCP、OSPF、IP、ARP。
143 Ping的整個過程。ICMP報文是什么。
144 C/S模式下使用socket通信,幾個關鍵函數。
145 IP地址分類。
146 路由器與交換機區別。
147 隊列和棧,出棧與入棧。
148 鏈表的刪除、插入、反向。
149 字符串操作。
150 Hash表的hash函數,沖突解決方法有哪些。
151 各種排序:冒泡、選擇、插入、希爾、歸并、快排、堆排、桶排、基數的原理、平均時間復雜度、最壞時間復雜度、空間復雜度、是否穩定。
152 快排的partition函數與歸并的Merge函數。
153 對冒泡與快排的改進。
154 二分查找,與變種二分查找。
155 二叉樹、B+樹、AVL樹、紅黑樹、哈夫曼樹。
156 二叉樹的前中后續遍歷:遞歸與非遞歸寫法,層序遍歷算法。
157 圖的BFS與DFS算法,最小生成樹prim算法與最短路徑Dijkstra算法。
158 KMP算法。
159 排列組合問題。
160 動態規劃、貪心算法、分治算法。(一般不會問到)
161 大數據處理:類似10億條數據找出最大的1000個數.........等等
162 指針數組,數組指針,指針函數,函數指針的區別
163 SQL語句:create、delete、update、drop等等
164 數據庫事務、索引
165 SQL的優化、order by的優化
166 HTTP和HTTPS的主要區別
167 如何設計一個高并發的系統
168 Cookie和Session的區別
169 兩條相交的單向鏈表,如何求他們的第一個公共節點
170 常用的設計模式:單例模式、工廠模式一定要會。單例模式、簡單工廠模式、工廠模式、抽象工廠模式、策略模式、觀察者模式、組合模式、適配器模式、裝飾模式、代理模式、外觀模式
171 洗牌算法,播放器隨機播放音樂的算法設計
172 二叉樹的遍歷方式,前序、中序、后序和層序
173 volatile、const、static關鍵字的使用
174 重載的分類
175 在瀏覽器地址欄中輸入例如www.baidu.com回車到顯示頁面,網絡中的整個過程
176 Linux常用命令及使用的參數
177 TCP/IP的11中狀態中常見的幾種:SYN_SEND、TIME_WAIT、CLOSE_WAIT
178 三次握手為啥是三次,四次揮手為啥是四次
179 最小堆 插入,刪除 編程實現
180 實現atoi()函數
181 給一個數組,求數組中比平均數大的數字個數。
182 矩陣相乘
183 構造函數可以調用虛函數嗎
184 析構函數可以拋出異常嗎?為什么不能拋出異常?除了資源泄露,還有其他需考慮的因素嗎?
185 c++中類型轉換機制?各適用什么環境?dynamic_cast轉換失敗時,會出現什么情況?(對指針,返回NULL.對引用,拋出bad_cast異常)
186 找出鏈表倒數第k個數(要求使用多種方法)
187 洗牌算法,如何證明算法是隨機的
188 100萬個32位整數,如何最快找到中位數。能保證每個數是唯一的,如何實現O(N)算法?
189 b樹/b+樹
190 socket api
191 網絡通信模型
192 使用C語言實現C++的特性
193 結構體對其
194 linux的stack有多大,為什么
195 HASH
196 數據元素去重
197 素數、水仙花數、回文串等等概念
198 心跳包
199 STL中常見容器的底層實現的數據結構是什么
200 涂色問題
201 1000瓶液體中有一瓶有毒的,最少多少老鼠可以判斷出那個有毒(最少10只,考慮二進制處理)
202 鏈表刪去指定值的節點
203 兩個棧實現隊列
204 紅黑樹的特點
205 template
206 算法中的時間復雜度和空間復雜度計算
207 IPC中最快的、可以跨進程的
208 找出一個數組中最大或者最小的K個數
209 大數相加相減
210 各種二叉樹
未完!2018/1/5
浦發銀行面試:
211.套接口與管道的區別?
222.如何減少代碼量?
223.內存是如何分配的?
總結
以上是生活随笔為你收集整理的嵌入式系统开发方向的面试题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NAND Flash和NOR Flash
- 下一篇: 把指定用户的命令写在/home/etc/