百度研發面經
百度研發面經
本文首發於微信公眾號:程式設計師江湖
百度智慧雲
軟體研發工程師
百度今年的提前批有點奇怪,好像都不走流程,牛客上好幾個百度內推的帖子,我投了幾個,基本上都是百度智慧雲的。
然後這些部門都安排了面試,沒有衝突,所以沒有動靜的小夥伴可以投投別的部門試試。
下面是我的兩篇面經,後續會繼續更新,每個部門側重點不太一樣。
百度智慧雲研發崗
好像是做控制檯方面的組
一面:
1自我介紹,專案
2 static關鍵字有什麼用,static修飾不同東西時有什麼作用,內部類用static修飾和不用static修飾有何區別。
3 hashmap,hashtable,concurrenthashmap區別和場景
4 volatile關鍵字有什麼用
5 jvm分割槽講下,作用講下,gc演算法講一下,gc是否會有停頓或者延遲。
6 講一下OOM和記憶體洩漏的例子,為什麼有GC還會出現記憶體洩漏和記憶體溢位呢
7 執行緒和程式的區別,通訊方式的區別。
8 悲觀鎖和樂觀鎖,說一下Java和資料庫分別怎麼實現的。
9 資料庫索引說一下,除了B+樹索引還有什麼索引。
10倒排索引說一下,如果關鍵字很多,怎麼優化。使用字首樹和hashmap優化。
11 字首樹的結構和原理說一下。
12 瀏覽器發起http請求過程,越詳細越好。
13 快取和資料庫的一致性怎麼保證
14 網上寫程式碼,寫了一個快排
15 沒了。
二面:
1 自我介紹
2 專案中難點,用到的技術
3 多執行緒,說一下執行緒的狀態和狀態轉換,詳細問
4 多執行緒的sleep方法和wait方法為什麼來源不同,一個是object方法,一個是Thread的方法。
5 為什麼object的wait和notify必須在同步塊中使用,不在同步塊使用會報錯麼,編譯報錯還是執行報錯。
6 jvm講一下gc吧,兩個物件的引用迴圈依賴,會不會被垃圾回收,什麼情況下會什麼情況下不會呢
7 GC root是哪些位置呢,我說記不起來,他說你不用記,其實就是執行時的一些物件和變數,比如區域性變數表,方法區的後設資料比如fianl,static變數,本地方法棧執行的方法。
8 資料庫瞭解哪個。Redis說一下為什麼是單執行緒的,不會很慢麼,有什麼好處。
9 Redis的IO請求模型,是不是IO多路複用呢。
10 Spring的interceptor和filter有什麼區別。我說沒區別,錯!
11 網路這塊,說一下dns請求的過程吧,dns是否會訪問快取呢,快取在本地和瀏覽器,還有dns伺服器上是不是都有。
12 get和post的區別講一下,底層的實現有區別麼,都是基於TCP,那麼如何限制get的url長度,在哪一層限制的。
13 資料結構熟麼,講一下樹和圖吧,樹的層次遍歷使用什麼結構,相應的圖的遍歷呢。講講最小生成演算法,還有迪傑斯特拉。
14 陣列,找到唯一一個出現兩次的數。
剛開始聽錯,說了位運算。
a 然後講了陣列計數,hash計數,排序比較。
b 然後面試官說條件給的是1到N-1的N個數字,重新想一下。
c 說了根據陣列位置和數字比較進行判斷。面試官最後說可以用相加求差值來判斷。
15 一個10000以下的陣列,記憶體夠。裡面只有1,2,3。排下序。
a 普通排序O(nlogn)
b 荷蘭旗問題,雙指標解決。O(N)
c 統計數量,重放陣列O(2N)
d 另外搞一個陣列,把1放頭,3放尾,也是雙指標。O(N)。空間複雜度O(N)
16 沒了。
全程50分鐘
三面HR
巴拉巴拉巴拉。基本上問題都大同小異。
百度智慧雲 資料庫部門
一面:
1 資料庫的事務,四個性質說一下,分別有什麼用,怎麼實現的。一致性沒講好。
2 講到了redo和undo日誌,問我分別有什麼用,說redo日誌說錯了。
3 資料庫的隔離性如何保證,使用悲觀鎖和樂觀鎖有何區別。MVCC的設計目的是什麼,怎麼使用版本號判斷資料的可見性。
4 問了一道演算法,1到N的所有數字,按照字典序列印,怎麼做。
說了用陣列排序,問複雜度,扯了半天。
怎麼優化,按照數字特徵順序列印,問這個東西和什麼結構比較像。提示是樹,然後說了個多叉樹,問我怎麼實現,最後其實使用dfs遍歷樹的每個分支。
5 多執行緒併發的同步實現,有兩個方法,每個方法裡有a部分程式碼和b部分程式碼,我要讓兩個執行緒分別執行兩個方法,並且讓他們執行完a部分程式碼再一起向下執行,如何實現。
6 我說了用cyclicbarrier實現,互相等待await。
然後他問我怎麼用訊號量實現,並且提示可以再用一個執行緒。
然後我說了個方案。
7 問了專案
8 如何把優化遞迴的程式碼
改成尾遞迴或者迴圈。
面試官說不是,引導說用棧實現遞迴。
問我棧中需要壓入哪些資料。他說應該是方法引數,返回值,以及返回地址。
二面:
1 自我介紹,專案 10分鐘過去
2 伺服器如何負載均衡,有哪些演算法,哪個比較好,一致性雜湊原理,怎麼避免DDOS攻擊請求打到少數機器。
3 TCP連線中的三次握手和四次揮手,四次揮手的最後一個ack的作用是什麼,為什麼要time wait,為什麼是2msl。
4 資料庫的備份和恢復怎麼實現的,主從複製怎麼做的,什麼時候會出現資料不一致,如何解決。
5 今天面試太多了,記不清了。。。
6 開源的技術看過用過麼,分散式儲存的瞭解麼。
7 想做什麼方向的開發。
8 Linux檢視cpu佔用率高的程式
9 檢視佔用某埠的程式和某程式監聽的埠
10 如何查詢日誌檔案中的所有ip,正規表示式
三面(8.3號更新):
資料庫部門真的很嚴格,問題都挺難的。
1 講一下專案
2 平時瞭解什麼作業系統
Linux,說一下Linux排查問題常用的命令,ps,top,netstat,free,du等等
3 Linux的記憶體管理演算法,問了一下是不是頁面置換演算法,他說是。
說了lru和fifo,問我lru有什麼缺點,沒答上來。
4 Linux的檔案系統瞭解麼,講了一下inode節點,檔案和目錄的原理。他問我了不瞭解具體的檔案系統ext2,ext3,答不會。。
5 程式通訊方式有哪些,問我分別怎麼使用,管道有哪些型別,各有什麼優缺點。
6 問我伺服器硬體瞭解麼。。一臉懵逼,問了我懂不懂Raid,瞎扯了幾句就說不懂了。
7 shell瞭解麼,沒怎麼寫過。
8 聽說你會Java,說一下JVM記憶體模型把,有哪些區,分別幹什麼的
9 說一下gc演算法,分代回收說下。
10 設計模式瞭解麼,說了7種,問我分別怎麼用,實際應用過嗎,稍微扯了一下。
11 MySQL的引擎講一下,有什麼區別,使用場景呢。
12 查詢最新的10條資料,想了好一會,order by id desc limit 10
13 MySQL的union all和union有什麼區別,我瞎掰了一下,應該不對。
14 MySQL有哪幾種join方式,底層原理是什麼,答不會,只知道表現形式。
15 Redis瞭解哪些啊,資料結構和基本原理把。
問我Redis怎麼做叢集,答了主從哨兵和cluster。
Redis的持久化怎麼做,aof和rdb,有什麼區別,有什麼優缺點。
16 Redis使用哨兵部署會有什麼問題,我說需要擴容的話還是得叢集部署。
17 分散式系統瞭解麼,說一下Hadoop瞭解啥。
我說基本元件稍微瞭解過,簡單搭過環境。
18 MapReduce的combiner幹啥的,我說是合併結果的,問我啥時候會用到,答不知道。
19 Hadoop分發任務時,有個job失敗了,hadoop會怎麼處理,我答不知道,猜是會繼續執行。。
20 hadoop分發任務,如果有一個節點特別慢拉慢了整體速度怎麼辦。我猜測是通過yarn分配相同的資源給每個任務,可以避免這種情況,他好像不太滿意。
21 hadoop答得很爛。問了我兩個10g檔案比較,2g記憶體,重複率很高,篩選出不同的內容。我說拆成十份hash,每份兩兩比較hash的結果集,貌似他說OK。
22 排序演算法瞭解哪些,巴拉巴拉。
23 用佇列計算一個樹的高度,我說用層次遍歷記錄節點高度。
24 一個黑名單集合,資料量很大,快速查詢一個值是否在集合裡,怎麼設計,我說布隆過濾器。
25 還是上一題,說這個黑名單可能需要動態地增刪改,如何設計才能避免訪問響應太慢。我沒思路,瞎扯了一下加硬體,用記憶體存,都被駁回了。然後他說算了。
26 上一題的黑名單做成分散式,怎麼做。說了分片的方案,根據地址的hash值確定分片所在節點。
27 分散式資料庫瞭解麼,我不太明白他問的是啥,說不了解,感覺應該是問資料庫的分散式方案。
28 有什麼想問的,據他所說還有2-3輪面試,驚了。
全程50分鐘,可以說是迄今為止難度最大的一個?
▼更多精彩內容
騰訊研發面經
阿里中介軟體研發面經
大俠,這裡有乾貨!
相關文章
- 鬥魚研發面經
- 今日頭條研發面經
- Java工程師研發面經大合集Java工程師
- 我的百度研發面經整合版(智慧雲,核心搜尋) | 掘金技術徵文
- 位元組跳動前端研發面經-2020春招技術面前端
- 網易互娛 遊戲研發 暑期實習面試面經遊戲面試
- 騰訊後臺研發面經 | 掘金技術徵文
- 網易公共技術Java研發工程師面經(offer)Java工程師
- 百度ML/DL方向面經
- 從事iOS研發5年的面經——希望對你們有幫助iOS
- 百度產品經理面試經驗 18屆 已簽約面試
- 記一次位元組跳動Java研發崗的面試經歷,跪了Java面試
- 落魄實習生的iOS位元組百度面經iOS
- 8 年產品經驗,我總結了這些持續高效研發實踐經驗 · 研發篇
- 【面試專題】3年經驗進百度是一種什麼樣的體驗?附上百度大佬的面試經驗!面試
- 我的阿里研發面經合集(阿里中介軟體,螞蟻金服)| 掘金技術徵文阿里
- python 後端開發面經Python後端
- 【Java開發工程師面經】Java工程師
- 李彥宏:百度的研發佔比常年在20%以上
- android開發面試經典收藏Android面試
- 如何可以開上海加油發票_百度經驗
- 如何可以開北京加油發票_北京百度經驗
- 如何可以開深圳加油發票_深圳百度經驗
- 如何可以開南京加油發票_南京百度經驗
- 面經
- 軟體研發之道:微軟開發團隊的經驗法則微軟
- 百度iOS面試iOS面試
- 百度面試題面試題
- Java研發方向如何準備BAT技術面試答案JavaBAT面試
- 從創意CTR測試到立項研發製作 休閒遊戲研發全流程經驗分享遊戲
- 如何可以開上海加油費發票_上海百度經驗
- 如何可以開北京加油費發票_北京百度經驗
- 如何可以開深圳加油費發票_深圳百度經驗
- 如何可以開南京加油費發票_南京百度經驗
- 研發工程師兩年工作經驗如何優化簡歷工程師優化
- 產品經理在研發流程中到底扮演什麼角色?
- 經典web開發工程師面試題Web工程師面試題
- 【刷遊戲開發面經記錄】2遊戲開發