作者:TK-Xiong
鏈接:https://www.nowcoder.com/discuss/3991
來源:??途W(wǎng)
C/C++相關(guān)
1.虛析構(gòu)、模板 和 宏
2.虛函數(shù)實(shí)現(xiàn)機(jī)制
(是每個(gè)類用了一個(gè)虛表,每個(gè)類的對(duì)象用了一個(gè)虛指針指向這個(gè)表)
3.vector與list的區(qū)別,map是如何實(shí)現(xiàn)的(RBTree),查找效率是多少(logn)
區(qū)別是…一個(gè)是連續(xù)空間,一個(gè)是指針串起來的…
Map的實(shí)現(xiàn)是紅黑樹RBTree
查找效率是logn
4.extern關(guān)鍵字有什么用?
標(biāo)識(shí)變量定義在其他文件
5.malloc和new的區(qū)別,能否malloc(1.2G)
malloc只分配空間不初始化,new既分配空間也初始化??梢?。
6.多態(tài)性都有哪些?
靜態(tài)多態(tài)和動(dòng)態(tài)多態(tài)。
靜態(tài)多態(tài)是函數(shù)重載
動(dòng)態(tài)多態(tài)是虛函數(shù)
7.動(dòng)態(tài)綁定怎么實(shí)現(xiàn)?
基類的指針或引用調(diào)用虛函數(shù)的時(shí)候發(fā)生動(dòng)態(tài)綁定。
如果實(shí)際指向的是派生類的對(duì)象,就調(diào)用派生類的函數(shù),如果是基類的,則調(diào)用基類的。
8.類型轉(zhuǎn)換有哪些?(四種類型轉(zhuǎn)換,分別舉例說明)
四種??床┛?。
9.操作符重載(+操作符),具體如何去定義?(讓把操作符重載函數(shù)原型說一遍)
10.內(nèi)存對(duì)齊的原則?(原則敘述了一下并舉例說明)
11.模版怎么實(shí)現(xiàn)?
12.指針和const的用法?(就是四種情況說了一下)
13.虛函數(shù)、純虛函數(shù)、虛函數(shù)與析構(gòu)函數(shù)?(純虛函數(shù)如何定義,為什么析構(gòu)函數(shù)要定義成
虛函數(shù))
14.內(nèi)聯(lián)函數(shù)(講了一下內(nèi)聯(lián)函數(shù)的優(yōu)點(diǎn)以及和宏定義的區(qū)別)
15.const和typedef(主要講了const的用處,有那些優(yōu)點(diǎn))
16.排序算法有哪些?快速排序怎么實(shí)現(xiàn)的?最好時(shí)間復(fù)雜度,平均時(shí)間復(fù)雜度
17.鏈接指示:extern “C”(作用)
18.c語言和c++有什么區(qū)別?(大體講了 一下,繼承、多態(tài)、封裝、異常處理等)
19.qt類中的一些繼承關(guān)系?
20.qt的信號(hào)與槽機(jī)制?
21.qt有那些類,控件?
22.plc是個(gè)什么玩意?
23.strcpy函數(shù)的編寫?(這個(gè)函數(shù)很熟悉,后來阿里校招面試也讓現(xiàn)場(chǎng)編寫了)
24.數(shù)據(jù)結(jié)構(gòu)中二叉樹的非遞歸遍歷?(現(xiàn)場(chǎng)畫圖舉例講解的,所以大家面試的時(shí)候盡量多
動(dòng)筆)
25.c++中四種類型轉(zhuǎn)換機(jī)制?
26.繼承機(jī)制中對(duì)象之間是如何轉(zhuǎn)換的?
27.繼承機(jī)制中引用和指針之間如何轉(zhuǎn)換?
28.虛函數(shù),虛函數(shù)表里面內(nèi)存如何分配?(這個(gè)考前看過了,答的還不錯(cuò))
29.如何實(shí)現(xiàn)只能動(dòng)態(tài)分配類對(duì)象,不能定義類對(duì)象?(這個(gè)??蜕系念}目,我把如何只能
動(dòng)態(tài)分配和只能靜態(tài)分配都講了一下)
30.stl有哪些容器,對(duì)比vector和set?
31.紅黑樹的定義和解釋?
32.const關(guān)鍵字的作用?(const成員函數(shù),函數(shù)傳遞,和define的區(qū)別)
33.靜態(tài)成員函數(shù)和數(shù)據(jù)成員有什么意義?
34.模版特化的概念,為什么特化?
35.explicit是干什么用的?
36.strcpy返回類型是干嘛用的?
重復(fù)拷貝
37.內(nèi)存溢出有那些因素?
(1)使用非類型安全(non-type-safe)的語言如C/C++等。
(2)以不可靠的方式存取或者復(fù)制內(nèi)存緩沖區(qū)。
(3)編譯器設(shè)置的內(nèi)存緩沖區(qū)太靠近關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。
38.new與malloc的區(qū)別,delet和free的區(qū)別?
39.為什么要用static_cast轉(zhuǎn)換而不用c語言中的轉(zhuǎn)換?
Static_cast有類型檢查,更安全
40.異常機(jī)制是怎么回事?
41.迭代器刪除元素的會(huì)發(fā)生什么?
迭代器可能失效?
42.必須在構(gòu)造函數(shù)初始化式里進(jìn)行初始化的數(shù)據(jù)成員有哪些?
43.類的封裝:private,protected,public
44.auto_ptr類:
linux以及操作系統(tǒng)相關(guān)
1內(nèi)存池實(shí)現(xiàn)
2進(jìn)程間通信機(jī)制
3 Linux ps命令,以及看內(nèi)存當(dāng)前使用狀態(tài)的命令
4進(jìn)程與線程的區(qū)別,共享的數(shù)據(jù)
5進(jìn)程的內(nèi)存空間
6.進(jìn)程和線程的區(qū)別。
7.死鎖的必要條件,怎么處理死鎖。
8. Window內(nèi)存管理方式:段存儲(chǔ),頁存儲(chǔ),段頁存儲(chǔ)。
9.進(jìn)程的幾種狀態(tài)。
10. IPC幾種通信方式。
11.什么是虛擬內(nèi)存。
12.虛擬地址、邏輯地址、線性地址、物理地址的區(qū)別。
計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)
1 TCP三次握手、四次揮手
2 TCP滑動(dòng)窗口與回退N針協(xié)議。
3 TCP擁塞控制機(jī)制
4 socket模型
5. OSI與TCP/IP各層的結(jié)構(gòu)與功能,都有哪些協(xié)議。
6. TCP與UDP的區(qū)別。
7. TCP報(bào)文結(jié)構(gòu)。
8. TCP的三次握手與四次揮手過程,各個(gè)狀態(tài)名稱與含義,TIMEWAIT的作用。
9. Http的報(bào)文結(jié)構(gòu)。
10. Http的狀態(tài)碼含義。
11. Http request的幾種類型。
12. Http1.1和Http1.0的區(qū)別
13. Http怎么處理長連接。
16. Cookie與Session的作用于原理。
17.電腦上訪問一個(gè)網(wǎng)頁,整個(gè)過程是怎么樣的:DNS、HTTP、TCP、OSPF、IP、ARP。
18. Ping的整個(gè)過程。ICMP報(bào)文是什么。
19. C/S模式下使用socket通信,幾個(gè)關(guān)鍵函數(shù)。
20. IP地址分類。
21.路由器與交換機(jī)區(qū)別。
網(wǎng)絡(luò)其實(shí)大體分為兩塊,一個(gè)TCP協(xié)議,一個(gè)HTTP協(xié)議,只要把這兩塊以及相關(guān)協(xié)議搞清楚,一般問題不大。
其他
1紅黑樹的性質(zhì)以及插入和刪除
4卡特蘭數(shù)以及公式推導(dǎo)(應(yīng)多很多)
9 C++、java和PHP有什么本質(zhì)區(qū)別