職位類型:技術(shù)部
面試地點:北京
招聘公司:百度
一面(1 hour):
1.面試官從簡歷里抽了一個較感興趣的項目,讓把項目簡單介紹了下,針對項目問了幾個技術(shù)問題
2.介紹Java中垃圾回收機制,程序員平時需要關(guān)注這個嗎?為什么?請舉例說明。
3.數(shù)據(jù)庫隔離級別介紹、舉例說明。
4.override和overload的區(qū)別。
5.求二叉樹的最大距離(即相距最遠的兩個葉子節(jié)點),寫代碼。
6.兩個棧實現(xiàn)一個隊列,寫代碼。
7.你覺得你的優(yōu)勢是什么?有什么技術(shù)薄弱點嗎?
8.目前手上有offer嗎?
二面(40 minutes):
1.詳細介紹研究生期間的小論文項目。
2.求二叉樹的寬度,先簡介思路再寫代碼。
3.Hashmap、Hashtable和cocurrentHashMap的區(qū)別,要講出它們各自的實現(xiàn)原理才行,比如Hashmap的擴容機制、cocurrentHashMap的桶分割原理、多線程安全性。
4.進程調(diào)度算法,有哪些算法比較難實現(xiàn)?
5.linux下如何修改進程優(yōu)先級?(nice命令的使用)。
6.linux下性能監(jiān)控命令uptime介紹,平均負(fù)載的具體含義是什么?建議看server load概念。
7.linux下如何調(diào)試程序?說到gdb,具體如何調(diào)試?如何查看core文件中的堆棧信息等(bt指令)。
三面(1 hour and twenty minutes):
1.介紹我研究生期間的論文,講的很詳細,每個點具體采用的技術(shù)、實現(xiàn)方法等,花了較長時間。
2.打印二叉樹兩個葉子節(jié)點間的路徑,寫代碼(汗,百度這么喜歡問二叉樹)。
3.字符串中第一個只出現(xiàn)一次的字符,如何優(yōu)化算法使得遍歷次數(shù)更少?
4.socket編程相關(guān),如果服務(wù)器這邊調(diào)用write寫了100個字節(jié)的數(shù)據(jù),客戶端想要獲得這個數(shù)據(jù),是直接用read系統(tǒng)調(diào)用,參數(shù)也是100嗎?
5.百度新聞緩存預(yù)算問題:一般為了追求時間性能,都需要緩存一些新聞數(shù)據(jù),你怎么計算所需預(yù)算?然后申請需要的主機……
6.多線程的適用場景是什么?為啥要用多線程?
7.問是否會go語言。
8.為啥對技術(shù)感興趣,一些相關(guān)問題討論。
9.聊北京、談offer。
最后面試官說像計算機體系結(jié)構(gòu)、操作系統(tǒng)這樣的書一定要看國外的,國內(nèi)的有時候會誤導(dǎo)人。
總結(jié):三面都是技術(shù)面,總體下來沒有特別難的題目,從我的面試情況來看,百度這次非??粗孛嬖囌邔Χ鏄涞恼莆涨闆r,還有所做的項目詳細介紹。后面我會繼續(xù)分享自己在面試過程中的一些個人經(jīng)驗和技巧。