1. 程式人生 > >2017年秋招各大公司後臺崗面經總結-1

2017年秋招各大公司後臺崗面經總結-1

今日頭條-頭條後臺崗三面面經

面經

可能沒有記全

一面:
1.自我介紹,專案
2.網路模型以及各層協議,TCP擁塞控制
3.IO複用以及select,poll,epoll區別
4.指標和引用區別
5.資料庫索引有哪些,他們的資料結構
6.複雜度為Onlogn的排序有哪些
7.LRU cache資料結構的實現,leetcode原題,但是stl規定只能用map,其他全都自己實現。(寫了好久,主要是要自己寫雙向連結串列list不能用STL)

二面:
1.反覆追問專案
2.之字形列印二叉樹(簡單)
3.長短URL相互轉換方案(同筆試題,問我方案可以有多少不同URL,高併發怎麼辦,怎樣建立索引以及怎樣分散式),討論了好久,感覺二面很糾結要不要我過去
4.其他忘了,二面記得時間挺久的

三面:
1.還是專案orz
2.同步問題
3.設計模式。java寫執行緒安全的單例模式
3.輸入一個數組表示柱狀圖一個柱子的長度,求柱狀圖中最大矩形面積。leetcode原題
4.二叉樹的最長路徑,邊遞迴邊求深度邊求最長路徑(劍指offer原題),這題餓著肚子腦子有些亂,好再後來寫了出來沒有栽倒✪ω✪

第一次分享面經,希望之後繼續人品爆發!

題目

  1. 網路模型以及各層協議,TCP擁塞控制
  2. 資料庫索引有哪些,他們的資料結構
  3. 複雜度為Onlogn的排序有哪些
  4. LRU cache資料結構的實現,leetcode原題,但是stl規定只能用map,其他全都自己實現。(寫了好久,主要是要自己寫雙向連結串列list不能用STL)
  5. 之字形列印二叉樹(簡單)
  6. 同步問題
  7. 設計模式。java寫執行緒安全的單例模式
  8. 輸入一個數組表示柱狀圖一個柱子的長度,求柱狀圖中最大矩形面積。leetcode原題
  9. 二叉樹的最長路徑,邊遞迴邊求深度邊求最長路徑(劍指offer原題)

總結

  1. 列表內容
  2. 列表內容
  3. 列表內容

  4. LRU cache資料結構的實現,使用LinkedHashMap,
    LRU, Least Recently Used 近期最少使用演算法, 常應用於快取中的資料淘汰, 其核心思想是“如果資料最近被訪問過,那麼將來被訪問的機率也更高“。
    演算法的定義: 近期最少使用演算法,其實就是按照”近期最少使用”這個條件去淘汰相應的資料。

    參考連結0-講解LRU思想
    參考連結1-優雅的實現

  5. 之字形列印二叉樹(劍指offer原題),
    層次遍歷二叉樹,使用三個計數的變數,其中兩個用於控制換行(分層),一個用於判斷奇偶性(用於控制輸出方向,從左往右或者從右往左輸出)。
    思路及實現程式碼

  6. 列表內容

  7. 列表內容

  8. 非常好的一道題目,思路如下:
    蠻力法,超時。

    另外一種方法:
    我們認為長度越長且高度越大,則面積越大。
    現在,使用兩個指標分別指向首、尾,這時它的寬度是最大的。
    可能還會出現面積更大的情況,只有當高度變大的時候,所以可以移動兩個指標中的較小者,這樣可以能會使高度增加以彌補長度變短造成面積減少的損失。
    一直移動兩者中較小者,直到兩者相遇,取各種情況的最大值即是最後的結果。
    實現程式碼

  9. 列表內容

今日頭條-今日頭條後端開發崗面經

面經

bxyybxx
編輯於 2017-09-03 20:29:41 回覆7 | 贊 4 | 瀏覽1598 今日頭條後端開發崗面經

一面:
自我介紹
介紹專案
寫題:
兩個棧實現一個佇列、怎麼優化
陣列每一個元素找出陣列右邊第一個大於自己的數
實現LRU

二面
介紹專案
TCP四次握手
執行緒與程序區別
什麼是執行緒安全
樂觀鎖、悲觀鎖
左連線、右連線
索引、主鍵的區別
寫題:
給定n,將1,2,,n按字典序排列,求第k大的數

三面:
求兩個有序陣列前K大的數
拓展:求m個有序陣列前K大的數
設計一個帶有有效時間TTL的KV儲存系統,包含set(key,value,ttl)、get(key)方法、怎麼優化
迴圈有序陣列的二分查詢

題目

  1. 兩個棧實現一個佇列、怎麼優化
  2. 陣列每一個元素找出陣列右邊第一個大於自己的數
  3. 實現LRU
  4. TCP四次握手
  5. 執行緒與程序區別
  6. 什麼是執行緒安全
  7. 樂觀鎖、悲觀鎖
  8. 左連線、右連線
  9. 索引、主鍵的區別
  10. 寫題:給定n,將1,2,,n按字典序排列,求第k大的數
  11. 求兩個有序陣列前K大的數,拓展:求m個有序陣列前K大的數
  12. 設計一個帶有有效時間TTL的KV儲存系統,包含set(key,value,ttl)、get(key)方法、怎麼優化
  13. 迴圈有序陣列的二分查詢

總結

  1. 列表內容
  2. 列表內容
  3. 列表內容
  4. 列表內容
  5. 列表內容
  6. 列表內容
  7. 列表內容
  8. 列表內容
  9. 列表內容
  10. 列表內容
  11. 列表內容
  12. 列表內容
  13. 列表內容

美團點評-美團校招內推電面

evanXU
釋出於 2017-09-02 18:51:07 回覆6 | 贊 0 | 瀏覽2260
剛面感覺應該是掛了
趁現在還記得,把問的問題總結一下。

面經

首先是Java虛擬機器垃圾回收
Synchronized與EntrantLock的區別。
資料庫事務隔離
LRU最近事物
快排
大根堆

大部分都能答上,但是回答的不夠深入

題目

  1. Java虛擬機器垃圾回收
  2. Synchronized與ReentrantLock的區別
  3. 資料庫事務隔離
  4. LRU最近事物
  5. 快排
  6. 大根堆

總結

  1. Java虛擬機器垃圾回收
  2. Synchronized與ReentrantLock的區別
  3. 資料庫事務隔離
  4. LRU最近事物
  5. 快排
  6. 大根堆

美團點評-Java開發3輪技術面+hr面 面經(回饋牛客 總結自我) 精

面經

小仇Eleven
釋出於 今天 16:56:44 回覆6 | 已贊 3 | 瀏覽1270 java開發3輪技術面+hr面 面經(回饋牛客 總結自我) 精

首先講真,得感謝牛客的討論區,感謝美團給我面試的機會,感謝幫忙內推的小夥伴,樓主渣渣雙非學校小碩,投過簡歷無數,簡歷被掛無數,幾乎都是石沉大海,所以每次面試都感覺彌足珍貴,本來上週面完就該發個面經的,但想想還是等定下來再寫吧,今天收到了電話通知,所以過來發個貼,好了,廢話不多說,不管最後去不去mt,先把面經弄出來再說。。。
技術一面:
一面基本上面的還算基礎 沒有過多的刁難 不過問題量特別大
1、自我介紹
巴拉巴拉,大致說了下實習和自己平時自己喜歡做的事情

2、我們先聊聊java基礎知識吧,說出Object類的常用方法?
toString(),clone(),執行緒的三個方法:wait()notify()notifyAll(),hashcode(),finallize(),equals()
大致講了上面這些個方法 並說了下各個方法的作用。。。。

3、剛剛說到object的常用方法,這些方法你應該都很熟悉吧,那你說說你對equal和hashcode這兩個方法的認識?
主要談了下兩個的作用 以及 當重寫equal方法時候一定要記得重寫hashcode方法,然後面試官就問了為什麼,然後就繼續巴拉巴拉。。。
然後面試官緊接著問 兩個物件如果equals那麼這兩個物件的hashcode一定相等麼 回答是! 那如果兩個物件的hashcode相等那麼這兩個物件是否一定equals?回答 不一定!理由其實 就是 關於 講重寫這兩個方法的情況。。。。

4、多執行緒用過吧?寫過一些demo,那你說說多執行緒之間的通訊,回答用wait sleep notify notifyAll配合使用 然後就問 wait和sleep一樣嗎?回答不一樣,然後巴拉巴拉談了下,關於物件鎖的釋放,是否需要喚醒。。。

5、嗯,剛剛談到了鎖,一下面試官就扯出了鎖,看你簡歷上ssh mybatis都熟悉,那你知道悲觀鎖和樂觀鎖吧?答知道,然後講了下兩個的區別以及應用場景

6、你平時資料庫一般用的什麼 mysql 那你說說在工作中一般用的什麼資料庫引擎 答 mysql預設的是InnoDB儲存引擎 敢情面試官想給我使絆子來著,接著就讓說InnoDB和MyISAM之間使用場景問題了,然後就就著這兩種儲存引擎的區別 以及 優缺點巴拉巴拉說了一通

7、平時是怎麼處理事務的,講下對事務的瞭解
巴拉巴拉。。。。

8、看你簡歷上講了分庫分表 談談兩個的使用 以及 在工作中 怎麼去設計
這裡主要是結合自己實習的專案來說的

9、mybatis快取 以及談談你們專案為什麼用spring mvc+mybatis 而不用Hibernate?
主要是說說一級快取 二級快取 然後 講講mybatis相對於Hibernate來說的優點好處之類

10、專案裡用到了redis 為什麼用它?
巴拉巴拉講了一通業務需要 快取資料 實現會話快取的機制之類

11、.java如何實現多型
講了下過載和重寫

12、談談java的垃圾回收機制
從java提供垃圾回收機制說起,談到了回收時機 何時回收 以及幾個常用的垃圾回收演算法,然後面試官問了解G1嗎,聽過但沒具體瞭解了,實話實說,就沒再繼續了。。

13、談談網頁登入模組裡記住我這個功能?
從session一直到cookie,巴拉巴拉說了下各自的實現原理 以及快取機制。。。

14、談談三次握手四次揮手 以及為什麼是三次 為什麼是四次 一定要是四次嗎?
巴拉巴拉 結合網路中 那兩個圖來就行了,肯定不一定是四次 具體原因 大家知道。。。

15、如果讓你設計一個大型網站,你覺得哪些東西是需要考慮的 為什麼?
巴拉巴拉 談了負載 談了快取 談了框架 然後面試官繼續問 就這些嗎 然後繼續扯 伺服器 接著扯 。。。。

16、資料結構學的怎麼樣 演算法這塊?
還行吧,一直有刷題(其實是最近才刷 想哭)
好吧 問的差不多了 今天到這裡吧,這兩天手機保持通暢,然後問我有什麼問題要問的,然後我就問了團隊,問了面試情況,問了招聘最後會考慮學校嗎 實在沒底 因為看小哥聊得挺好 所以才敢問的。。。。

技術二面;
1、三次握手四次揮手
(其實沒搞明白為毛mt這麼喜歡問這個問題 之前看面經好的童鞋提到了這個問題 還有就是沒讓自我介紹 我以為是要走過場了)

2、sql注入瞭解麼
談了下 注入的原理 以及登入功能模組中 sql注入的 實現

3、集合框架肯定經常用吧?
於是自覺的從Collection聊到list arrayList vector LinkedList set map HashMap hashtable都通通扯了一遍,語速太快 感覺就跟背書一樣 面試官笑逗了,就說 小夥子背的不錯嗎,面試寶典沒少看吧 我無語!!接著就繼續說,你剛剛說的那些都是比較淺的東西,我問個比較基礎的吧,你知道HashMap的資料結構和實現原理吧? 陣列和連結串列的結合體 順便談了下底層陣列Entry 實現原理這塊 主要是說了下 hashing、put和get的實現過程,以及當遇到空值以及當兩個鍵有相同hashcode值的處理。。。然後問我知道ConcurrentHashMap不 於是又講了下這個和synchronizedMap的區別 以及 效率問題。。。

4、談談volatile
。。。。然後又問知道ThreadLoca不。。。。。

5、寫程式碼:解決生產者消費者問題
用了Semaphore手寫的程式碼 大概花了一些時間 跟面試官講了下實現。。。

6、問設計模式,百問不爽的答單例模式 讓說了四種單例模式的實現辦法?餓漢式 飽漢式 列舉 然而我只說了這三種。。。

7、問了下java記憶體模型 講了下垃圾回收演算法
又是一通巴拉巴拉 比較了各個演算法的優劣和問題之類的。。。再問G1,幸虧一面後來去看了下,於是說了下大概的認知。。。

8、Java記憶體洩露的問題
大致又扯了下垃圾回收 然而好像不是面試官要的答案 尷尬。。。。

9、談redis和memcached
。。。。

10、用過NIO麼,沒用過(我是講真話沒用過 不敢說用過)跳過

11、聊get post,http狀態碼,http header
巴拉巴拉說了下自己瞭解的,不是很滿意感覺。。。

12、講ssh搭建
。。。。

13、談spring mvc
。。。。
這講框架的兩個問題 就跟聊天一樣 你一句我一句的。。。。

14、談spring的事物管理
。。。。

15、談執行緒池
。。。。。

16、你有師兄之類的在mt麼 為什麼想來mt
巴拉巴拉。。。。
最後沒讓問問題 沒說下一面任何事情(以為掛了)

技術三面:
1、自我介紹+專案
。。。

2、懟專案,死懟,談業務需求,談遇到的問題
。。。。

3、還是專案,你在專案中做了以圖搜圖,你是怎麼實現的,談談你的處理過程?
談了下影象檢索的認識 聊了下自己用的sparse coding演算法 談了下降維演算法 說了一大通 不知道面試官挺懂沒。。。。

4、講下資料庫優化
主要說了索引、資料庫結構優化,然後牽扯出紅黑樹,讓手撕紅黑樹,然而寫不出來,講了下大概實現。。。資料庫結構優化主要講了下在專案中做到的表拆分和分割槽。。。

5、談談tomcat伺服器
巴拉巴拉。。。。

6、講下sql的left join、right join、inner join
這個簡單。。。。

7、談spring的過濾
大致講了下登入過濾的實現。。。

8、繼續談spring mvc的分層 以及問了些常用的註解
。。。

9、談談IOC
。。。。(又一送菜題)

10、連表查詢:笛卡爾積通過什麼連線得到sql
巴拉巴拉 談笛卡爾積的實現。。。。

11、對‘a’,‘b’,‘c’,‘d’排序,排成指定的順序
這個我不會。。。

12、算n個數內的質數的和
這個簡單,用一個數組儲存所有質數 然後計算陣列的sum即可。。。

13、一個圓環上有n個點 a從任意一個點出發 到達下一個點都需要Ag能量,每一個點都有cg能量補給,假設a最初有Bg能量,問a最初Ag能量為多少能保證a繞圓環一週。。。
最後一個問題大致是這樣的。。。。。

14、談談自己的學校
第一次遇到這樣的問題,還是技術面裡。。。。。。。

hr面:
1、why投mt

2、why投外賣配送bu

3、自己最想從事什麼行業

4、為什麼打算在上海工作,打算長期發展嗎?

5、三個詞語概括自己的性格

6、為什麼讀研?

(又一次遇到這個問題 第二次了 因為是工作的時候考研的)
7、換我來問問題了。。。。

大概想起來的就上面那些 技術面的比較深刻 就大概記錄下吧 很多問題 回答起來估計要很多時間,大家參考參考就行 祝大家早日收到offer。。。。

題目

  1. Object(11個方法,重點是覆寫equals和hashCode,淺克隆clone)
  2. 多執行緒,怎麼實現執行緒之間通訊?wait和sleep一樣嗎?
  3. 悲觀鎖和樂觀鎖,它們的區別和應用場景
  4. MySQL的資料庫引擎
  5. 對事務的理解
  6. Java如何實現多型
  7. Java的垃圾回收機制,回收時機,常用的垃圾回收演算法,G1
  8. TCP三次握手和四次揮手?為什麼是三次,四次?一定要四次揮手嗎?
  9. 設計一個大型網站,需要考慮什麼?
  10. sql注入,舉例登入功能模組中sql注入的實現
  11. Collection框架,List,Set,Map,Queue,ArrayList,LinkedList,HashMap,Vector,Hashtable,重點是HashMap的hash方法,put方法,get方法和resize方法。
  12. ConcurrentHashMap和Collections.synchronizedMap的區別
  13. 談談volatile
  14. ThreadLocal
  15. 程式碼模擬生產者消費者(使用ArrayBlockingQueue)
  16. 設計模式-單例模式
  17. Java記憶體模型(記憶體劃分)
  18. JVM垃圾回收演算法,比較各個演算法的優劣
  19. G1
  20. Java記憶體洩漏問題
  21. NIO
  22. get和post,http狀態碼,http header
  23. 執行緒池
  24. 資料庫優化(索引和資料庫結構優化)
  25. 紅黑樹
  26. tomcat伺服器
  27. sql 的 left join,right join, inner join
  28. Spring IoC
  29. 連表查詢:笛卡爾積通過什麼連線得到sql(笛卡爾積的實現)
  30. n個數內的質數的和
  31. 有什麼要問的問題

總結

美團點評-美團二面

jackfang
釋出於 今天 20:56:05 回覆6 | 贊 1 | 瀏覽643

面經

晚上8點接到美團的電話要立刻二面,一臉懵逼。

面試官主要問了一些基礎的知識:
1:String類能否被繼承
2:介面和抽象類的區別
3:Synchronzed的用法
4:http和https的區別
5:javagc()中年輕態和年老態的用法
6:get和post的區別
7:tcp和udp的區別
最後還問了參加沒有參加什麼比賽,最後又說這兩臺會安排我進行技術三面。希望這些可以幫到大家~

題目

  1. String類能否被繼承
  2. 介面和抽象類的區別
  3. Synchronzed的用法
  4. http和https的區別
  5. javagc()中年輕態和年老態的用法
  6. get和post的區別
  7. tcp和udp的區別

總結

美團點評-三面被送走,寫面經攢人品,希望被補錄。。

神蝸牛
編輯於 今天 19:10:47 回覆5 | 贊 2 | 瀏覽1375 三面被送走,寫面經攢人品,希望被補錄。。

面經

兩點去的五點結束,總共三個小時,二面問的時間比較短。。
還有部分問題想不起來。。
一面
TCP/IP三次握手,四次揮手畫圖解釋
執行緒狀態畫圖說明
單例模式,如何實現執行緒安全的單例模式 手寫程式碼
linux常用命令知道哪些
100以內的隨機數排序怎麼做手寫程式碼
資料庫怎麼優化–我記了概念非得深入問
怎麼看慢查詢日誌
垂直拆分,水平拆分怎麼做的等一系列
為什麼資料庫索引使用B+樹
分散式快取有沒有用過
radis與memcache的區別
死鎖,怎麼解決死鎖
銀行家演算法,怎麼實現,手寫程式碼
事務的四個特性
spring的AOP原理
代理模式的原理與應用
專案相關。。我做的敏感詞過濾。。
(漢語的敏感詞要做分詞麼。。我覺得不需要呀)
討論一會分詞什麼的

二面
程序與執行緒的區別
java虛擬機器
GC,full GC觸發條件,分割槽
單例模式又問了一遍
手寫兩個程式碼
逆轉單鏈表
兩個字串的最大公共子序列
http與https的區別
沒錯linux的常用命令又問了一遍
檢視程序的命令
檢視日誌的命令
執行緒池的實現原理
專案中還用到什麼模式

三面
專案相關
怎麼設計表,設計模組,介紹自己做了什麼,說說自己專案的亮點
設計一個實名認證系統,主要功能是對名字打分
(我說的幾種他都不太滿意)
專案問完就開始聊人生。。
什麼一天怎麼安排,給任務怎麼去做
希望將來工作的團隊是怎麼樣,工作是什麼樣
給一個專案怎麼去準備怎麼去做
對任務有沒有計劃表,會不會按照計劃嚴格執行
接受實習嗎
有什麼想問的
我就問了他是什麼部門,去了幹什麼,主要業務是什麼
還問了soa的相關
之後就被送走了。。。。

題目

  1. TCP/IP三次握手,四次揮手畫圖解釋
  2. 執行緒狀態畫圖說明
  3. 單例模式,如何實現執行緒安全的單例模式 手寫程式碼
  4. linux常用命令知道哪些
  5. 100以內的隨機數排序怎麼做手寫程式碼
  6. 資料庫怎麼優化–我記了概念非得深入問
  7. 怎麼看慢查詢日誌
  8. 垂直拆分,水平拆分怎麼做的等一系列
  9. 為什麼資料庫索引使用B+樹
  10. 分散式快取有沒有用過
  11. radis與memcache的區別
  12. 死鎖,怎麼解決死鎖
  13. 銀行家演算法,怎麼實現,手寫程式碼
  14. 事務的四個特性
  15. spring的AOP原理
  16. 代理模式的原理與應用
  17. 程序與執行緒的區別
  18. java虛擬機器
  19. GC,full GC觸發條件,分割槽
  20. 單例模式又問了一遍
  21. 手寫兩個程式碼
  22. 逆轉單鏈表
  23. 兩個字串的最大公共子序列
  24. http與https的區別
  25. 沒錯linux的常用命令又問了一遍
  26. 檢視程序的命令
  27. 檢視日誌的命令
  28. 執行緒池的實現原理

總結

美團點評-美團點評面經(提前批)

面經

自我介紹
……

資料庫考查內容:
解釋資料庫正規化,索引(不懂)。寫了個查詢語句:題目是從grade表中找出每科成績都大於80分的學生名字。

計算機網路:

畫出來7層網路結構,解釋資料鏈路層主要負責作甚,介紹TCP的三步握手,其中ACK主要是做什麼用的。

作業系統:
程序和執行緒的區別,程序的排程策略,程序之間的通訊方式。

Java知識
HashMap和HashTable的區別,hashMap的擴容方法。

學習Java的方式?

ArrayList和Linkedlist的區別以及各自的試用場景,以及ArrayList的擴容方法。

資料結構與演算法:
手寫快速排序演算法,並解釋過程。

第二面(答的特別糟糕):
Object類有哪些方法,clone方法的深拷貝和淺拷貝的區別,wait操作和sleep的操作的區別。

畫出執行緒的狀態轉換圖。

訪問www.meitu.com網站,從瀏覽器發出訪問到返回頁面的整個過程。

手寫一個演算法:從字串中“aecbcda”找出不重複的字元組成的順序子串“aecbd”,用最優的時空複雜度。

我的簡歷中有提到Elastic search被問到了,答的一塌糊塗,所以建議簡歷中別寫自己不熟悉的內容。

備註
二面直接被拒了,但面試官很好,他提醒我以後找工作還需要做哪些準備。
Spring,mybatis, redis. 其中Spring不是單純的理解AOP和IOC,還要知道是怎麼實現的。
路漫漫其修遠兮,吾且依舊要努力兮。

題目

  1. 程序和執行緒的區別
  2. 程序的排程策略(先來先服務FCFS,短作業優先SJF,優先順序排程演算法 ,高響應比優先排程演算法)
  3. 程序之間的通訊方式。(共享儲存,訊息傳遞【包括管道通訊】)
  4. HashMap和HashTable的區別,hashMap的擴容方法。
  5. 手寫快速排序演算法,並解釋過程。

總結

宣告:
本文所有的面經均來自牛客網。
感謝大佬們的貢獻。