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