<nav id="47a4h"><sub id="47a4h"></sub></nav>

  • <ol id="47a4h"><ruby id="47a4h"><input id="47a4h"></input></ruby></ol> <dd id="47a4h"><center id="47a4h"><noframes id="47a4h"></noframes></center></dd>
  • <tbody id="47a4h"><pre id="47a4h"></pre></tbody>

    <ol id="47a4h"><object id="47a4h"></object></ol>
  • <rp id="47a4h"><samp id="47a4h"></samp></rp>
  • <rp id="47a4h"><strike id="47a4h"><u id="47a4h"></u></strike></rp>

    今日頭條后臺開發工程師面經

    2019-03-12    面經大全    【手機瀏覽本頁】

    今日頭條上海

    后臺開發工程師

    今日頭條

    后端研發工程師

    找?痛罄幸税捉鸫a,跳過死亡筆試,直接視頻面,從3點開始,斷斷續續到晚上8點結束。

    每個面試官給我的感覺都是怎么這么高冷啊。

    一面:

    1.寫一個題,找一個無序數組的中位數

    2.寫了個快排,然后讓我找到無序數組第k大的一個數,我說先排序再找,實際上可以用快排的partition函數。

    3.快排的時間復雜度,最壞情況呢,最好情況呢,堆排序的時間復雜度呢,建堆的復雜度是多少,nlgn。

    4.操作系統了解么,Linux和windows

    5.說說Linux的磁盤管理,一臉懵逼

    6.Linux有哪些進程通信方式,五大件

    7.Linux的共享內存如何實現,大概說了一下。

    8.共享內存實現的具體步驟,我說沒用過

    9.socket網絡編程,說一下TCP的三次握手和四次揮手,中間網絡不好,面試官都沒聽清楚,很尷尬

    10.跳過網絡,問了項目的一些東西

    11.問我如何把docker講的很清楚,我從物理機,虛擬機到容器具體實現稍微說了下。

    12.問我cgroup在linux的具體實現,不會。

    13.多線程用過哪些,chm和countdownlatch在實習用過

    14.不得不吐槽下今天?偷囊曨l網速,不知道啥原因卡的一比,明明下載網速很正常啊,?鸵曨l每秒才20k。。瘋狂掉線搞得很蛋疼。

    二面:

    1.自我介紹

    2.Java的集合類哪些是線程安全

    3.分別說說這些集合類,hashmap怎么實現的,扯了很多

    4.MySQL索引的實現,innodb的索引,b+樹索引是怎么實現的,為什么用b+樹做索引節點,一個節點存了多少數據,怎么規定大小,與磁盤頁對應。

    5.MySQL的事務隔離級別,分別解決什么問題。

    6.Redis了解么,如果Redis有1億個key,使用keys命令是否會影響線上服務,我說會,因為是單線程模型,可以部署多個節點。

    7.問我知不知道有一條命令可以實現上面這個功能。不知道

    8.Redis的持久化方式,aod和rdb,具體怎么實現,追加日志和備份文件,底層實現原理的話知道么,不清楚。

    9.Redis的list是怎么實現的,我說用ziplist+quicklist實現的,ziplist壓縮空間,quicklist實現鏈表。

    10.sortedset怎么實現的,使用dict+skiplist實現的,問我skiplist的數據結構,大概說了下是個實現簡單的快速查詢結構。

    11.了解什么消息隊列,rmq和kafka,沒細問

    12.寫題時間到。第一題:寫一個層序遍歷。

    13.第二題:寫一個插入樹節點到一顆排序樹的插入方法,使用遞歸方式找到插入位置即可。

    14.第三題:一個有向圖用鄰接矩陣表示,并且是有權圖,現在問怎么判斷圖中有沒有環。

    15.我說直接dfs走到原點即為有環,剛開始寫的時候我又問了一嘴是不是只要找到一個就行,面試官說是的,然后我說這樣應該用bfs,有一次訪問到原節點就是有環了。

    16.面試官問我不用遞歸能不能做這個題,其實我都還沒開始寫。然后我就說沒有思路,他提示我拓撲圖。我沒明白拓撲圖能帶來什么好處,F在一想,好像當訪問過程中找不到下一個節點時就說明有環。做一個訪問標記應該就可以。

    17.第四題:一個二叉樹,找到二叉樹中最長的一條路徑。

    我先用求樹高的方式求出了根節點的左右子樹高度,加起來便是。

    18.然后面試官提示需要考慮某個子樹深度特別大的情況,于是我用遍歷的方式刷新最大值,用上面那個方法遍歷完整個樹即可。

    19.面試官說復雜度比較高,但是由于時間問題就說結束了。

    三面:

    三面的面試官真的高冷啊,不茍言笑就算了,我問他問他他都不愛搭理的,搞得我內心慌得一比,感覺涼涼。

    1.介紹一下項目

    2.你談到的并發技術,chm和countdownlatch怎么使用的

    3.為什么要這么處理,使用線程池是不是也可以。我說也可以

    4.操作系統的進程通信方式,僵尸進程和孤兒進程是什么,如何避免僵尸進程,我說讓父進程顯示通知,那父進程怎么知道子進程結束了,答不會。

    5.計算機網絡TCP和UDP有什么區別,為什么迅雷下載是基于UDP的,我說FTP是基于TCP,而迅雷是p2p不需要TCP那么可靠的傳輸保證。

    6.他說不對,我說是不是因為要建立連接,開銷比較大,他說不對

    7.我說p2p的發送節點很多,所以不是那么需要各種傳輸保證,他說不對。

    8.我說TCP會自動分包而TCP可以自己定義數據長度。。他還是說不對。

    最后他說算了。我們問下一個吧。

    9.操作系統的死鎖必要條件,如何避免死鎖。

    10.寫一個LRU的緩存,需要完成超時淘汰和LRU淘汰。

    我說用lhm行不行,他說用linkedlist和hashmap可以。

    于是我就寫了put和get函數,進行了隊頭隊尾操作。

    他說get復雜度會不會太高,我瞎掰了半天沒找到辦法,他說那就這樣吧,今天面試到這。

    11.媽蛋,過期淘汰的處理我還沒寫呢,你就說結束了,感覺涼了啊,我說我要不要把剩下邏輯下完,他說不用,心涼了一大截~

    12.然后HR小姐姐讓我等結果了。溜了溜了

    相關文章
    熱點文章