被騰訊、網易out後,我拿下位元組跳動、vivo的offer(Java崗)

2020-10-07 12:01:08

個人基本情況

雙非大學本科畢業生,計算機專業,在校成績偏上,之前的實習專案的成績也都還不錯,所以簡歷相比同學歷的人來說還是算出彩的,這次秋招準備得挺早的,但一開始並不順利,騰訊和網易打頭陣的兩家公司都被直接刷了,不過好在自己心態好,最終拿下了位元組跳動和vivo的offer,現分享一下自己的面經和真題。

vivo(後臺開發):筆試+一面+HR面

vivo一面(現場面40min)

Static變數和方法有什麼特點,能不能存取非靜態成員,說一說為什麼?

Static方法能不能重寫,為什麼?

抽象類和介面的成員變數有什麼差別?

HashSet怎麼實現的?

HashMap怎麼遍歷的?

線性結構有哪些,二元樹屬於嗎?

二元樹最多有多少個節點?第k層有多少個節點?

氣泡排序怎麼實現?怎麼優化?兩層迴圈各是幹什麼的?

多執行緒中wait和sleep方法的區別

MVC模式的實現

Hibernate怎麼和上層互動,用過哪些資料庫?你瞭解多少?

手寫sql:查詢從6.1開始到現在每天的評論數量;評論大於1000的數量(注意日期函數)

說說你之前做的專案

專案方法是自己提出來的還是有前人做過,有什麼不同,改進在哪裡?

vivoHR面(20min)

自我介紹

有什麼興趣?

面試了哪些公司,拿到了哪些offer

為什麼想要來vivo?

你在之前的專案裡,有沒有遇到什麼困難?最後怎麼解決的?

說說自己的優缺點。

期望薪資

......

你還有什麼想問的嗎?

位元組跳動(西瓜視訊):筆試+三面+HR面

位元組跳動一面(45min)

自我介紹

問之前做的專案,如何進行設計的。比方說你用了 Redis,為什麼要用 Redis?

Redis 為什麼快?

Redis 有哪些資料結構,zset 底層結構?為什麼要有跳躍表和字典兩個?

你是怎麼解決超賣少賣的?如果我不在快取中做,非要用資料庫來控制超賣少賣呢?

計算機網路的三次握手,四次揮手,TIMEWAIT 狀態?如何儘量處理 TIMEWAIT 過多?

寫道演演算法題,陣列的逆序數。要求能執行!

寫個 LRU。

寫個最長迴文序列:迴文子序列,因為是不連續的肯定是不能直接列舉,那麼利用動態規劃。我們知道對於任意字串,如果頭尾字元相同,那麼字串的最長子序列等於去掉首尾的字串的最長子序列加上首尾;如果首尾字元不同,則最長子序列等於去掉頭的字串的最長子序列和去掉尾的字串的最長子序列的較大者,由此得到轉移方程。

限流的演演算法?為什麼用令牌桶?令牌桶的限流有什麼缺點?

瞭解分散式訊息嗎?

Kafka怎麼保證資訊有序?

位元組跳動二面(1h)

自我介紹

網路分層結構

TCP為什麼在網路環境不好的時候慢

滑動視窗機制

Google的BBR演演算法

抽象類和介面的區別

資料結構底層 list map arraylist hashmap

堆 棧 方法區的區別

Hibernate的session

資料庫底層

說專案

專案用到哪些設計模式 有幫助麼

演演算法:6個或8個蘋果裝一個袋子,最少袋子數量 DP揹包問題

位元組跳動三面(50min)

慣例自我介紹

先寫個題,矩陣中的最長遞增路徑,給定一個整數矩陣,找出最長遞增路徑的長度。對於每個單元格,你可以往上,下,左,右四個方向移動。 利用記憶化搜尋搞定。

讓你係統的設計一個高並行的架構,你會從哪幾個方面考慮?

再寫一個判斷一個二元樹是另一個二元樹的子樹?

演演算法:連結串列k段反轉

場景題1:很大地圖 每個npc移動 資料結構設計 怎麼找周圍的npc 演演算法 以圓半徑怎麼找 注意玩家是在移動

場景題2:遊戲排行榜 彈幕的資料結構設計 考慮哪些因素 怎麼存資料庫裡

場景題3:前100的玩家怎麼找 說了分治 分治怎麼做 分散式的話怎麼一致

位元組跳動HR面(20min)

自我介紹

自己的優缺點

學習過程中遇到的一些問題如何解決的

性格上的優缺點

家庭情況

期望薪資

為什麼想來北京

總結

對於面試,首先一定要有良好的心態,之前面試騰訊和網易涼涼之後,並沒有一點氣餒,所以之後的面試並沒有受到影響,發揮也很正常,也就能夠攬下位元組跳動和vivo兩個offer,目前已經準備入職位元組跳動了,希望自己一切順利。


需要以上面試學習資料加下方V