嵌入式系統開發方向的面試題總結
面試題總結:
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.記憶體是如何分配的?