金三銀四Java面試我去前面探探路面試題目參考(頭條、美團,阿里)

今日頭條-頭條後臺崗三面面經
一面:
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-5工做經驗的,面對目前流行的技術不知從何下手,須要突破技術瓶頸的能夠加羣。在公司待久了,過得很安逸,但跳槽時面試碰壁。須要在短期內進修、跳槽拿高薪的能夠加羣。若是沒有工做經驗,但基礎很是紮實,對java工做機制,經常使用設計思想,經常使用java開發框架掌握熟練的能夠加羣。java架構羣:591240817 一塊兒交流。
題目
網絡模型以及各層協議,TCP擁塞控制
數據庫索引有哪些,他們的數據結構
複雜度爲Onlogn的排序有哪些
LRU cache數據結構的實現,leetcode原題,可是stl規定只能用map,其餘全都本身實現。(寫了很久,主要是要本身寫雙向鏈表list不能用STL)
之字形打印二叉樹(簡單)
同步問題
設計模式。java寫線程安全的單例模式
輸入一個數組表示柱狀圖一個柱子的長度,求柱狀圖中最大矩形面積。leetcode原題
二叉樹的最長路徑,邊遞歸邊求深度邊求最長路徑(劍指offer原題)
總結
列表內容
列表內容
列表內容
LRU cache數據結構的實現,使用LinkedHashMap,
LRU, Least Recently Used 近期最少使用算法, 常應用於緩存中的數據淘汰, 其核心思想是「若是數據最近被訪問過,那麼未來被訪問的概率也更高「。
算法的定義: 近期最少使用算法,其實就是按照」近期最少使用」這個條件去淘汰相應的數據。
參考連接0-講解LRU思想
參考連接1-優雅的實現
之字形打印二叉樹(劍指offer原題),
層次遍歷二叉樹,使用三個計數的變量,其中兩個用於控制換行(分層),一個用於判斷奇偶性(用於控制輸出方向,從左往右或者從右往左輸出)。
思路及實現代碼
列表內容
列表內容
很是好的一道題目,思路以下:
蠻力法,超時。
另一種方法:
咱們認爲長度越長且高度越大,則面積越大。
如今,使用兩個指針分別指向首、尾,這時它的寬度是最大的。
可能還會出現面積更大的狀況,只有當高度變大的時候,因此能夠移動兩個指針中的較小者,這樣能夠能會使高度增長以彌補長度變短形成面積減小的損失。
一直移動二者中較小者,直到二者相遇,取各類狀況的最大值便是最後的結果。
實現代碼
列表內容
今日頭條-今日頭條後端開發崗面經
一面:
自我介紹
介紹項目
寫題:
兩個棧實現一個隊列、怎麼優化
數組每個元素找出數組右邊第一個大於本身的數
實現LRU
二面
介紹項目
TCP四次握手
線程與進程區別
什麼是線程安全
樂觀鎖、悲觀鎖
左鏈接、右鏈接
索引、主鍵的區別
寫題:
給定n,將1,2,,n按字典序排列,求第k大的數
三面:
求兩個有序數組前K大的數
拓展:求m個有序數組前K大的數
設計一個帶有有效時間TTL的KV存儲系統,包含set(key,value,ttl)、get(key)方法、怎麼優化
循環有序數組的二分查找
題目
兩個棧實現一個隊列、怎麼優化
數組每個元素找出數組右邊第一個大於本身的數
實現LRU
TCP四次握手
線程與進程區別
什麼是線程安全
樂觀鎖、悲觀鎖
左鏈接、右鏈接
索引、主鍵的區別
寫題:給定n,將1,2,,n按字典序排列,求第k大的數
求兩個有序數組前K大的數,拓展:求m個有序數組前K大的數
設計一個帶有有效時間TTL的KV存儲系統,包含set(key,value,ttl)、get(key)方法、怎麼優化
循環有序數組的二分查找

想要更多資料的能夠關注個人微信公衆號java

相關文章
相關標籤/搜索