面試問題--找工作的歷程近期找工作的過程中,因?yàn)樽约罕容^喜歡C/C++,對多線程以及網(wǎng)絡(luò)方面比較熟悉, 所以下面的這些問題是這段時(shí)間在面試過程中被問到了,現(xiàn)在對這些問題進(jìn)行了匯總?。?/p> 面試過程真的是一個(gè)非常好的學(xué)習(xí)過程,下面那些問題自己現(xiàn)在基本可以解決, 我的答案或者觀點(diǎn)就不給出了,看到這篇文章的同學(xué)可以根據(jù)自己的情況,測試一下自己....哈哈... 也可以當(dāng)成一次學(xué)習(xí)的過程,網(wǎng)上搜索出來的結(jié)果可能會(huì)更詳細(xì)。。。動(dòng)手吧。。。
一、網(wǎng)絡(luò)(主要是TCP/UDP) (1)、TCP的三次握手連接:兩端主機(jī)狀態(tài)(SYN_SEND,SYN_RECV,ESTABLISH),數(shù)據(jù)包類型(SYN,ACK),整體過程 (2)、TCP的四次揮手:主機(jī)狀態(tài)(FIN_WAIT_1,F(xiàn)IN_WAIT_1,TIME_WAIT,CLOSE_WAIT,LAST_ACK,CLOSED),數(shù)據(jù)包類型(FIN,ACK), 問題1:TIME_WAIT狀態(tài)有什么用?時(shí)間有多長? 問題2:四次揮手中,服務(wù)端接收到FIN包后,回應(yīng)ACK包后,還能否繼續(xù)發(fā)送數(shù)據(jù)?為什么服務(wù)端把ACK包和FIN包分開發(fā)送? 問題3:TCP協(xié)議的REST包有什么用? 問題4:TCP協(xié)議里的PSH包和URG包的區(qū)別? 問題5:TCP包中緊急指針有什么用?那部分為緊急數(shù)據(jù)? 問題6:TCP的可靠傳輸機(jī)制有哪些? 問題7:TCP和UDP以及IP三者的區(qū)別? 問題8:TCP包和UDP包的長度? 問題9:TCP傳輸?shù)男屎蚒DP傳輸?shù)男实挠懻??!?/p> 問題10:ping命令使用的是什么協(xié)議?實(shí)現(xiàn)的原理? 問題11:輸入一個(gè)鏈接到游覽器顯示頁面的整個(gè)過程?盡量詳細(xì)說出來 問題12:如果打開一個(gè)鏈接打不開,如果去查找原因? 問題13:ARP獲取物理地址(MAC地址)的過程? 問題14:DDoS攻擊的原理?有哪些方式(an:如SYN洪)?如果防止這種攻擊?
二、多進(jìn)程多線程 問題1:多進(jìn)程和多線程的聯(lián)系和區(qū)別? 問題2:多線程的同步和互斥機(jī)制?(注:有些機(jī)制只能用于互斥) 問題3:臨界區(qū)和互斥量的區(qū)別? (注:一個(gè)不是內(nèi)核對象,一個(gè)是內(nèi)核對象) 問題4:多進(jìn)程的通信機(jī)制? 問題5:死鎖的原因和條件? (注:三個(gè)原因和四個(gè)必要條件) 問題6:fork()函數(shù)的應(yīng)用? (注:2013騰訊軟件開發(fā)筆試題) 問題7:進(jìn)程地址空間結(jié)構(gòu)? (注:用戶地址空間:低到高:代碼區(qū)、data區(qū),bss區(qū),堆區(qū)、....(映射區(qū))、棧區(qū)) 問題8:使用內(nèi)存共享機(jī)制時(shí),內(nèi)存映射到進(jìn)程地址空間的什么位置?
三、C/C++方面的問題 問題1:多態(tài)實(shí)現(xiàn)機(jī)制?虛表的原理? 問題2:虛繼承時(shí),對象的內(nèi)存空間結(jié)構(gòu)以及虛表結(jié)構(gòu)? (注:深度探究C++對象模型那本書有詳細(xì)介紹) 問題3:智能指針實(shí)現(xiàn)原理? (注:auto_ptr,shared_ptr,weaked_ptr...) 問題4:new和delete、malloc和free的問題? 問題5:const、#define以及inline的區(qū)別 問題6:vector內(nèi)部的內(nèi)存維護(hù)原理?有什么缺點(diǎn)? (注:迭代器失效) 問題7:vector釋放內(nèi)存方式?寫出代碼 (注:一種是強(qiáng)制調(diào)用其析構(gòu)函數(shù)) 問題8:內(nèi)存對齊問題? (注:可以使用#pragma pack()處理) 問題9:類對象結(jié)構(gòu)問題?static變量放在內(nèi)存的哪個(gè)區(qū)?static函數(shù)呢?類對象大小的計(jì)算? 問題10:繼承過程中,派生類對象結(jié)構(gòu)的變換?虛表的變換 問題11:覆蓋和重載的區(qū)別? 問題12:MFC中問什么使用消息映射機(jī)制而不使用繼承機(jī)制實(shí)現(xiàn)? 問題13:消息隊(duì)列和消息映射之間的聯(lián)系和區(qū)別
四、海量數(shù)據(jù)處理已經(jīng)分布式方面問題(我只是了解的水平..哈哈..還在學(xué)習(xí)中...) 問題1:海量數(shù)據(jù)處理的思想? 問題2:海量數(shù)據(jù)處理一般會(huì)使用到的方式? 問題3:了解哪里分布式系統(tǒng)? (注:我當(dāng)時(shí)介紹了MapReduce,其實(shí)可以從GFS,BigTable以及MapReduce入手,以及三大技術(shù)的應(yīng)用,Hadoop)
下圖是我參加校招過程的一些記錄,我是在這樣的一個(gè)過程中成長的....哈哈...帶有一些吐槽哈...
|
|
|