華為面試題
華為面試整體流程大致分為筆試,性格測試,面試,綜合面試,回學(xué)校等結(jié)果?偟膩碚f,其實(shí)華為的面試并沒有想象中的困難。
面試題答案
1.請(qǐng)你分別劃劃OSI的七層網(wǎng)絡(luò)結(jié)構(gòu)圖,和TCP/IP的五層結(jié)構(gòu)圖?
OSI/ISO根據(jù)整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)功能將網(wǎng)絡(luò)分為:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層、應(yīng)用層七層。也稱“七層模型”。
TCP/IP“五層模型”分為:物理層、網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層(IP層)、傳輸層(TCP/UDP層)、應(yīng)用層。
2.請(qǐng)你詳細(xì)的解釋一下IP協(xié)議的定義,在哪個(gè)層上面,主要有什么作用?TCP與UDP呢?
IP協(xié)議是網(wǎng)絡(luò)層的協(xié)議,它實(shí)現(xiàn)了自動(dòng)路由功能,也就是尋徑的功能。TCP協(xié)議是傳輸層的協(xié)議,它向下屏蔽了IP協(xié)議不可靠傳輸?shù)奶匦,向上提供一個(gè)可靠的點(diǎn)到點(diǎn)的傳輸;UDP也是傳輸層的協(xié)議,提供的是一種無連接的服務(wù),主要考慮到很多應(yīng)用不需要可靠的連接,但需要快速的傳輸,如局域網(wǎng)中的計(jì)算機(jī)傳輸文件一般使用UDP協(xié)議。
3.請(qǐng)問交換機(jī)和路由器分別的實(shí)現(xiàn)原理是什么?分別在哪個(gè)層次上面實(shí)現(xiàn)的?
交換機(jī)用在局域網(wǎng)中,交換機(jī)通過記錄局域網(wǎng)內(nèi)各節(jié)點(diǎn)機(jī)器的MAC地址就可以實(shí)現(xiàn)傳遞報(bào)文,無需看報(bào)文中的IP地址。路由器識(shí)別不同網(wǎng)絡(luò)的方法是通過識(shí)別不同網(wǎng)絡(luò)的網(wǎng)絡(luò)ID號(hào)(IP地址的高端部分)進(jìn)行的,所以為了保證路由成功,每個(gè)網(wǎng)絡(luò)都必須有一個(gè)唯一的網(wǎng)絡(luò)編號(hào)。路由器通過察看報(bào)文中IP地址來決定路徑,向那個(gè)子網(wǎng)(下一跳)路由。也就是說交換機(jī)工作在數(shù)據(jù)鏈路層看MAC地址,路由器工作在網(wǎng)際層看IP地址。但是由于現(xiàn)在網(wǎng)絡(luò)設(shè)備的發(fā)展,很多設(shè)備既有交換機(jī)的功能有由路由器的功能(交換式路由器)使得兩者界限越來越模糊。
4.請(qǐng)問C++的類和C里面的struct有什么區(qū)別?
C++的class具有數(shù)據(jù)封裝功能,其包含屬性訪問級(jí)別可以為private,public和protect,還具有實(shí)現(xiàn)類接口功能和輔助功能的操作函數(shù),而struct屬性訪問權(quán)限只有public,沒有數(shù)據(jù)封裝功能,也就沒有實(shí)現(xiàn)信息隱藏這一面向?qū)ο蟮乃枷氲臋C(jī)制,struct本身不含有操作函數(shù),只有數(shù)據(jù)。
5.請(qǐng)講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用?
析構(gòu)函數(shù)是在類對(duì)象死亡時(shí)由系統(tǒng)自動(dòng)調(diào)用,其作用是用來釋放對(duì)象的指針數(shù)據(jù)成員所指的動(dòng)態(tài)空間,如果在構(gòu)造函數(shù)中,你申請(qǐng)了動(dòng)態(tài)空間,那么為了避免引起程序錯(cuò)誤,你必須在析構(gòu)函數(shù)中釋放這部分內(nèi)存空間。如果基類的函數(shù)用virtual修飾,成為虛函數(shù),則其派生類相應(yīng)的重載函數(shù)仍能繼承該虛函數(shù)的性質(zhì),虛函數(shù)進(jìn)行動(dòng)態(tài)聯(lián)編,也即具有多態(tài)性,也就是派生類可以改變基類同名函數(shù)的行為,在面向?qū)ο笫澜缰,多態(tài)是最強(qiáng)大的機(jī)制,虛函數(shù)就是這一機(jī)制的c++實(shí)現(xiàn)方式。
6.全局變量和局部變量有什么區(qū)別?實(shí)怎么實(shí)現(xiàn)的?操作系統(tǒng)和編譯器是怎么知道的?
全局變量是整個(gè)程序都可訪問的變量,誰都可以訪問,生存期在整個(gè)程序從運(yùn)行到結(jié)束(在程序結(jié)束時(shí)所占內(nèi)存釋放);而局部變量存在于模塊(子程序,函數(shù))中,只有所在模塊可以訪問,其他模塊不可直接訪問,模塊結(jié)束(函數(shù)調(diào)用完畢),局部變量消失,所占據(jù)的內(nèi)存釋放。
操作系統(tǒng)和編譯器,可能是通過內(nèi)存分配的位置來知道的,全局變量分配在全局?jǐn)?shù)據(jù)段并且在程序開始運(yùn)行的時(shí)候被加載.局部變量則分配在堆棧里面。
7.8086是多少位的系統(tǒng)?在數(shù)據(jù)總線上是怎么實(shí)現(xiàn)的?
答:8086的機(jī)器字長是16位,8086使用40個(gè)引腳的16個(gè)做地址/數(shù)據(jù)復(fù)用引腿來傳輸數(shù)據(jù),一次讀寫過程由一個(gè)基本總線周期完成,它由4個(gè)時(shí)鐘(CLK)周期組成,按時(shí)間順序定義為T1、T2、T3、T4。在T1期間8086發(fā)出訪問目的地的地址信號(hào)和地址鎖存選通信號(hào)ALE;T2期間發(fā)出讀寫命令信號(hào)RD、WR及其它相關(guān)信號(hào);T3期間完成數(shù)據(jù)的訪問;T4結(jié)束該總線周期?梢姡刂放c數(shù)據(jù)信號(hào)不會(huì)同時(shí)出現(xiàn)在一個(gè)時(shí)鐘(CLK)周期,二者可以分時(shí)復(fù)用同一組引線。