盡人事,聽天命,十二輪面試最終圓夢位元組,記一次最難面試記錄
阿新 • • 發佈:2022-05-24
從22年3月份開始,經歷了一次一面掛,一次二面掛,兩次三面掛,這次終於成功上岸位元組跳動飛書人力套件,面經如下:
位元組教育(一面以後第二天位元組宣佈解散教育,但是還是撐到了三面)
- TreeMap講一下
- 時間輪是怎麼實現的
- git中ignore是幹嘛的
- git merge gitrebase的區別
- 什麼物件可以作為GCroot
- JVM的垃圾回收演算法
- URL的編碼方式
- HTTPS
- 若釣魚網站偽造了證書應該如何處理
- DNS解析過程,DNS劫持
- ARP介紹
- 寫題:向有序連結串列中插入節點
二面:
- 程序間通訊方式
- select poll epoll
- G1的原理
- 深拷貝,淺拷貝
- HashMap
- 寫題:缺失的第一個正數
三面:
- 寫題:二叉樹最近公共祖先
- B+樹如何實現更新的
- 記憶體池
- Redis的String型別的資料結構
掛了。。。
抖音音樂(一面掛)
- 面向物件三大特徵
- 作業系統的記憶體對齊,為什麼要這麼做
- 堆和棧儲存什麼的
- 虛擬記憶體,為什麼要用虛擬記憶體,用虛擬記憶體的好處
- 快排最壞的情況,如何優化快排
- 寫題:中文轉阿拉伯數字
商業化技術(三面掛,面經就一二面的,三面找不到了)
一面:
- 如果現在要寫一個服務,要連線資料庫的話,如果你的前臺請求,比如說是電商,請求比較大的話,那麼服務的qps扛不住,要怎麼優化。
- Rocketmq是如何在消費端進行限流的 深拷貝、淺拷貝
二面:
- 死鎖的條件以及如何避免死鎖
- 針對於我們在專案開發過程中當想從MySQL中刪除資料的話,應該怎麼做 繼承和抽象的概念 Static修飾不同的地方的含義 Spring註解,比如說NotNull的註解有什麼用嗎(被註釋的元素不能為null) 寫題:單詞搜尋
- 基礎架構
(二面掛)
一面:
- 設計相關的,Redis是一個記憶體性資料庫,可以理解為是一個hashMap,假如說用任何語言寫一個k-v的資料庫,需要在基礎之上為其生成快照,應該怎麼設計。
- spring控制反轉和麵向切面的程式設計,描述一下是什麼以及有什麼用。
- 斷點續傳怎麼實現?
- 亂序的邏輯,把一個數組打亂,需要自己實現一個shuffle,有一個隨機數生成器。
- 為什麼會出現泛型
- 寫題:二叉樹的右檢視
二面: 介紹一下實習的專案
- 怎麼在mq中加冪等性校驗
- 有沒有其他的實現方式。為啥不用Java中的delayQueue呢
- 延遲訊息,除了放到訊息佇列裡面,還有其他的方案嘛
- 用一個延遲佇列做,有什麼問題嘛?怎麼解決呢?
- rocketmq的特點是什麼,有那麼多mq,跟kafka比有什麼優勢嘛
- 延遲訊息的數量大概是什麼樣的呢?
- 你怎麼知道線上的程式碼是正確的呢?
- HTTP請求的狀態碼的含義,502和504有什麼區別?
- restfulApi有聽說過嘛,設計介面的話,會符合什麼規範嘛?
虛擬記憶體 飛書(這次三面終於過了)
一面:
- 哈囉實習的專案,介紹一個最熟悉的以及最有挑戰性的專案
- 延遲訊息的改造,延遲多久呀這個訊息
- rocketmq如何實現任意時間的延遲訊息的
- 訊息在傳送成功後會寫redis,如果redis中沒有拿到key的話,是怎麼處理的
- 發完訊息以後寫redis失敗的話,應該怎麼處理,網路上的延遲導致redis寫失敗了應該怎麼處理
- 重複消費怎麼處理
- 訊息的量有多大呢
- 編碼風格的規範
- stream這塊怎麼debug哪裡有異常呢
- 執行緒池裡面有哪些核心引數
- 生產者消費者
- 平常都用spring開發是嘛
- springAOP的原理是什麼,到程式碼細節這一塊。
- 資料庫,MySQL的索引,平常建索引的時候應該注意一些什麼
- 啥時候會走錯索引
- sql的題目,學生選課,LC單詞拆分,生產者-消費者模型
二面:
- 對Linux系統的記憶體如何管理是否瞭解,程序當中看到的都是連續的虛擬地址空間,這個虛擬地址是如何跟計算機上的實體地址是如何對映的。
- 頁式管理具體的機制是什麼? 程序從誕生到結束的整個生命週期 就緒態什麼時候執行,是如何進行排程的 程序所使用的資源是什麼時候回收 分析一個輸入URL到顯示頁面的過程,涉及到哪些協議 HTTP請求行請求頭 HTTPS協議是如何保證傳輸資料的安全的 那我們寫個sql吧 判斷平衡二叉樹 最短無序連續子序列 三面:
- 覺得研發流程哪個環節最重要
- 程式碼規範,開發語言是什麼,在Java8裡面哪些規範是必須遵守的。
- 程式碼量多少
- 上線的話,現在線上的Java服務,JVM有哪些配置,配一些什麼樣的引數
- 併發控制的話,在Java.util.concurrent包裡面有哪些工具
- 能夠實現複雜控制的併發控制的工具有了解嘛(不瞭解)
- countDownLatch是什麼(面試官說,你是背下來的嘛,沒關係)
- MySQL用過嗎,innodb引擎來實現事務的隔離級別有哪些
- 可重複讀能解決幻讀的問題嘛(說了當前讀和快照讀的情況)
- 你說換一個專案吧,從軟體設計架構來講一下
- 專案的難點是什麼
- 有多大海量啊
- 訊息量沒有體現出來你的架構思想。
- 你能再談談假如說你現在面臨一個挑戰,訊息規模增加1000倍,你C端的客戶增加100倍,這個架構你覺得有哪些優化的地方可以做技術架構的升級,假設你是這個專案的總負責人(PS:我不是,所以說不會doge)
- 這個系統哪些點需要被監控起來
- 比如說端到端的成功率,失敗了要不要重試,某個組間掛了,有沒有容災補償方式(都不會doge)
- 你們用的Redis的持久化方案有哪些
- 如果在線上搭一個Redis cluster,RDB是一定要開啟,還是可以不開啟
- Redis中加一個節點的話,怎麼複製啊
- 主從複製(答到了全量複製,面試官說,那回到之前的問題,RDB需不需要開啟,面試官說學知識不要那麼僵硬,要靈活起來)
- 面試官說你記憶的東西還可以,要消化吃透
- 設計模式,說一下你用過的設計模式
- 寫題:二叉樹從根節點到葉子節點和為某一值的路徑
後來HR通知我過了,給了口頭offer,說過兩天會聯絡我走一下後面的流程
雖然過程有些曲折,但是結果還是好的,自己的努力也沒有辜負
最後給大家分享一下我的學習筆記,我能有這麼好的結果,這份筆記也有一部分原因
需要的小夥伴可+v ikt4435 筆記資料