1. 程式人生 > 其它 >盡人事,聽天命,十二輪面試最終圓夢位元組,記一次最難面試記錄

盡人事,聽天命,十二輪面試最終圓夢位元組,記一次最難面試記錄

從22年3月份開始,經歷了一次一面掛,一次二面掛,兩次三面掛,這次終於成功上岸位元組跳動飛書人力套件,面經如下:

 

 

位元組教育(一面以後第二天位元組宣佈解散教育,但是還是撐到了三面)

 

  1. TreeMap講一下
  2. 時間輪是怎麼實現的
  3. git中ignore是幹嘛的
  4. git merge gitrebase的區別
  5. 什麼物件可以作為GCroot
  6. JVM的垃圾回收演算法
  7. URL的編碼方式
  8. HTTPS
  9. 若釣魚網站偽造了證書應該如何處理
  10. DNS解析過程,DNS劫持
  11. ARP介紹
  12. 寫題:向有序連結串列中插入節點

 

二面:

 

  1. 程序間通訊方式
  2. select poll epoll
  3. G1的原理
  4. 深拷貝,淺拷貝
  5. HashMap
  6. 寫題:缺失的第一個正數

 

三面:

 

  1. 寫題:二叉樹最近公共祖先
  2. B+樹如何實現更新的
  3. 記憶體池
  4. Redis的String型別的資料結構

 

掛了。。。

 

抖音音樂(一面掛)

  1. 面向物件三大特徵
  2. 作業系統的記憶體對齊,為什麼要這麼做
  3. 堆和棧儲存什麼的
  4. 虛擬記憶體,為什麼要用虛擬記憶體,用虛擬記憶體的好處
  5. 快排最壞的情況,如何優化快排
  6. 寫題:中文轉阿拉伯數字

 

商業化技術(三面掛,面經就一二面的,三面找不到了)

 

一面:

 

  1. 如果現在要寫一個服務,要連線資料庫的話,如果你的前臺請求,比如說是電商,請求比較大的話,那麼服務的qps扛不住,要怎麼優化。
  2. Rocketmq是如何在消費端進行限流的 深拷貝、淺拷貝

 

二面:

 

  1. 死鎖的條件以及如何避免死鎖
  2. 針對於我們在專案開發過程中當想從MySQL中刪除資料的話,應該怎麼做 繼承和抽象的概念 Static修飾不同的地方的含義 Spring註解,比如說NotNull的註解有什麼用嗎(被註釋的元素不能為null) 寫題:單詞搜尋
  3. 基礎架構

(二面掛)

 

一面:

  1. 設計相關的,Redis是一個記憶體性資料庫,可以理解為是一個hashMap,假如說用任何語言寫一個k-v的資料庫,需要在基礎之上為其生成快照,應該怎麼設計。
  2. spring控制反轉和麵向切面的程式設計,描述一下是什麼以及有什麼用。
  3. 斷點續傳怎麼實現?
  4. 亂序的邏輯,把一個數組打亂,需要自己實現一個shuffle,有一個隨機數生成器。
  5. 為什麼會出現泛型
  6. 寫題:二叉樹的右檢視

 

 

二面: 介紹一下實習的專案

  1. 怎麼在mq中加冪等性校驗
  2. 有沒有其他的實現方式。為啥不用Java中的delayQueue呢
  3. 延遲訊息,除了放到訊息佇列裡面,還有其他的方案嘛
  4. 用一個延遲佇列做,有什麼問題嘛?怎麼解決呢?
  5. rocketmq的特點是什麼,有那麼多mq,跟kafka比有什麼優勢嘛
  6. 延遲訊息的數量大概是什麼樣的呢?
  7. 你怎麼知道線上的程式碼是正確的呢?
  8. HTTP請求的狀態碼的含義,502和504有什麼區別?
  9. restfulApi有聽說過嘛,設計介面的話,會符合什麼規範嘛?

 

 

虛擬記憶體 飛書(這次三面終於過了)

一面:

  1. 哈囉實習的專案,介紹一個最熟悉的以及最有挑戰性的專案
  2. 延遲訊息的改造,延遲多久呀這個訊息
  3. rocketmq如何實現任意時間的延遲訊息的
  4. 訊息在傳送成功後會寫redis,如果redis中沒有拿到key的話,是怎麼處理的
  5. 發完訊息以後寫redis失敗的話,應該怎麼處理,網路上的延遲導致redis寫失敗了應該怎麼處理
  6. 重複消費怎麼處理
  7. 訊息的量有多大呢
  8. 編碼風格的規範
  9. stream這塊怎麼debug哪裡有異常呢
  10. 執行緒池裡面有哪些核心引數
  11. 生產者消費者
  12. 平常都用spring開發是嘛
  13. springAOP的原理是什麼,到程式碼細節這一塊。
  14. 資料庫,MySQL的索引,平常建索引的時候應該注意一些什麼
  15. 啥時候會走錯索引
  16. sql的題目,學生選課,LC單詞拆分,生產者-消費者模型

 

二面:

 

  1. 對Linux系統的記憶體如何管理是否瞭解,程序當中看到的都是連續的虛擬地址空間,這個虛擬地址是如何跟計算機上的實體地址是如何對映的。
  2. 頁式管理具體的機制是什麼? 程序從誕生到結束的整個生命週期 就緒態什麼時候執行,是如何進行排程的 程序所使用的資源是什麼時候回收 分析一個輸入URL到顯示頁面的過程,涉及到哪些協議 HTTP請求行請求頭 HTTPS協議是如何保證傳輸資料的安全的 那我們寫個sql吧 判斷平衡二叉樹 最短無序連續子序列 三面:
  3. 覺得研發流程哪個環節最重要
  4. 程式碼規範,開發語言是什麼,在Java8裡面哪些規範是必須遵守的。
  5. 程式碼量多少
  6. 上線的話,現在線上的Java服務,JVM有哪些配置,配一些什麼樣的引數
  7. 併發控制的話,在Java.util.concurrent包裡面有哪些工具
  8. 能夠實現複雜控制的併發控制的工具有了解嘛(不瞭解)
  9. countDownLatch是什麼(面試官說,你是背下來的嘛,沒關係)
  10. MySQL用過嗎,innodb引擎來實現事務的隔離級別有哪些
  11. 可重複讀能解決幻讀的問題嘛(說了當前讀和快照讀的情況)
  12. 你說換一個專案吧,從軟體設計架構來講一下
  13. 專案的難點是什麼
  14. 有多大海量啊
  15. 訊息量沒有體現出來你的架構思想。
  16. 你能再談談假如說你現在面臨一個挑戰,訊息規模增加1000倍,你C端的客戶增加100倍,這個架構你覺得有哪些優化的地方可以做技術架構的升級,假設你是這個專案的總負責人(PS:我不是,所以說不會doge)
  17. 這個系統哪些點需要被監控起來
  18. 比如說端到端的成功率,失敗了要不要重試,某個組間掛了,有沒有容災補償方式(都不會doge)
  19. 你們用的Redis的持久化方案有哪些
  20. 如果在線上搭一個Redis cluster,RDB是一定要開啟,還是可以不開啟
  21. Redis中加一個節點的話,怎麼複製啊
  22. 主從複製(答到了全量複製,面試官說,那回到之前的問題,RDB需不需要開啟,面試官說學知識不要那麼僵硬,要靈活起來)
  23. 面試官說你記憶的東西還可以,要消化吃透
  24. 設計模式,說一下你用過的設計模式
  25. 寫題:二叉樹從根節點到葉子節點和為某一值的路徑

後來HR通知我過了,給了口頭offer,說過兩天會聯絡我走一下後面的流程

雖然過程有些曲折,但是結果還是好的,自己的努力也沒有辜負

最後給大家分享一下我的學習筆記,我能有這麼好的結果,這份筆記也有一部分原因

需要的小夥伴可+v ikt4435 筆記資料

 

 

 

 

 

 

 

 

就展示這些了,大家隨意,有需要的話,可以關注公眾號【不脫髮有志青年】