百度二面(四十五分鐘)
軟件研發(fā)工程師。
先自我介紹,然后面試官問項目息裸,我大概講了一下舀锨。
面試官先是問 C 語言的知識:struct 齊位的問題岭洲,解釋兩個關(guān)鍵字 static 和 volatile。關(guān)于 C 語言中“static 修飾的函數(shù)只能被本文件里內(nèi)容使用”這個知識點我沒有回答出來坎匿。面試官又問我 C 中的互斥鎖等幾個鎖盾剩,我說沒聽過,他就跳過了替蔬。
接著面試官問我操作系統(tǒng)了解多少告私,有沒有看過源碼。我回答說沒有承桥,只看過 STL 的源碼驻粟。然后是多進程和多線程的問題。這個有好好準(zhǔn)備過凶异,跟他詳細(xì)解釋了一下進程線程的區(qū)別以及進程/線程切換時系統(tǒng)發(fā)生的行為蜀撑。接著他問我線程之間除了共享進程的程序段和數(shù)據(jù)段,還有什么剩彬,我說共享一些資源酷麦,比如文件描述符。他追問還有什么喉恋,我答不上來了沃饶。
然后面試官問我會不會網(wǎng)絡(luò),我說不會轻黑。他轉(zhuǎn)而問我一道內(nèi)存管理方面的題糊肤。int *p=malloc(1024); 請問 p[10]=1; 這個語句的具體語義是什么(即指針 p 的尋址規(guī)則是什么)。我回答說尋址時會做 p+10*sizeof(int)氓鄙,即 p+40 的操作馆揉,所以 1 會被寫入在 p+40 這個地址上。接著他問我 p 這個指針保存的是物理地址還是虛擬地址玖详,我說不知道把介。
最后是一道編程題:一棵擁有父親指針和左右孩子指針的二叉樹,給定任意一個結(jié)點蟋座,找出其中序遍歷時的下一個結(jié)點拗踢。這道題目不難,把邏輯弄清楚向臀、邊界情況考慮全面之后寫代碼巢墅,寫的還算不錯。
到了我的提問環(huán)節(jié),我問了面試官他的工作體驗以及他目前的工作君纫,他簡單介紹了一下驯遇,他以前是做底層操作系統(tǒng)的,現(xiàn)在正在轉(zhuǎn)型做云計算蓄髓。我就接著跟他聊了一下云計算叉庐,大概是勾起了他的興趣,他又如數(shù)家珍般跟我說了一遍他對云計算虛擬化的理解会喝,并問我目前的 offer 情況陡叠,我也如實相告。
我的感受:
1.面試官做的是操作系統(tǒng)方面肢执,并不是我的強項枉阵,因此面試表現(xiàn)很一般。面試就是看緣分预茄,遇到一個和自己專業(yè)對口的面試官兴溜,就能夠發(fā)揮出很好的表現(xiàn)。
2.面試中我?guī)缀醪煊X不到自己有明顯的失誤耻陕,該做對的題都做得不錯拙徽,但不會的也是基本上答不出來。畢竟自己能力有限诗宣,所以這次面試表現(xiàn)中規(guī)中矩斋攀。
3.技術(shù)提問環(huán)節(jié)幾乎沒有任何亮點。最后面試者提問環(huán)節(jié)表現(xiàn)不錯梧田,但這只能是錦上添花的部分,并不能雪中送炭侧蘸。