爽啊,終於又見面了,位元組跳動後端社招面試分享

馬士兵老師發表於2020-12-16


一面


1.   介紹一下自己, 為什麼選擇出來看看機會

2.   聊專案, 警報怎麼做的, 統一接入監控項怎麼做的

3.   聊專案, 配置中心專案, 問實時配置推送怎麼做

4.   討論為什麼選擇所有的元件依賴放在配置中心中控制

5.   我現在要做一個限流功能, 怎麼做?

6.   這個限流要做成分散式的, 怎麼做?

7.   怎麼搶鎖?鎖怎麼釋放?

8.   加了超時之後有沒有可能在沒有釋放的情況下, 被人搶走鎖?怎麼解決?

9.   不用 zk 的心跳,可以怎麼解決這個問題呢?

10. 假如這個限流希望做成可配置的, 需要有一個後臺管理系統隨意對某個 api 配置全域性流量, 怎麼做?

11. 某一個業務中現在需要生成全域性唯一的遞增 ID, 併發量非常大, 怎麼做?

12. 演算法題, M*N 橫向縱向均遞增的矩陣找指定數

13. 有什麼想問我的?

二面


1.   平時用的工具鏈和技術棧是什麼?

2.   golang 踩過坑嗎?

3.   這段 golang 程式碼有沒有 bug?

4.   Java 中 HashMap 的儲存, 衝突, 擴容, 併發訪問分別是怎麼解決的?

5.   拉鍊法中連結串列過長時變形為紅黑樹有什麼優缺點?

6.   HashMap 的併發不安全體現在哪?

7.   HashMap 在擴容時, 對讀寫操作有什麼特殊處理?

8.   ConcurrentHashMap 是怎麼做到併發安全的?

9.   Java 有哪些鎖機制, 分別有什麼特點?

10. 知道 CAS 嗎? Java 中 CAS 是怎麼實現的?

11. MySQL 的儲存引擎用的是什麼?為什麼選 InnoDB?

12. MySQL 的聚簇索引和非聚簇索引有什麼區別?

13. B+樹和二叉樹有什麼區別和優劣?

14. 針對一個場景設計索引,考察的是聯合索引與列選擇性的知識

15. 現有一個新的查詢場景, 要怎麼解決?

16. 假如要查 A in () AND B in (), 怎麼建索引?

17. 查 A in () AND B in () 時, MySQL 是怎麼利用索引的?

18. 假如查詢 A in (), MySQL 是針對 N 個值分別查一次索引, 還是有更好的操作?

19. 用過 Redis 的哪幾種資料結構?ZSET 是怎麼實現的?

20. zrange start, stop, 總長度為 n, 複雜度是多少?

21. Kafka 的消費者如何做訊息去重?

22. 介紹一下 Kafka 的 ConsumerGroup

23. Kubernetes 和 Docker 用得怎麼樣?

24. 時序型資料庫的儲存結構是怎麼樣的?

25. LSM 樹瞭解嗎? 是一種什麼儲存結構?

26. 在生產中用過 Cassandra 和 RocksDB 嗎? 量有多大?

27. Cassandra 的墓碑機制是什麼 ?

28. 演算法題:牛客題霸上的原題,可以去看看:NC76用兩個棧實現佇列

三面


1.   聊專案和工作經驗

2.   用 Kubernetes 的過程中踩過哪些坑?

3.   考慮一個業務場景: 頭條的文章的評論量非常大, 比如說一篇熱門文章就有幾百萬的評論, 設計一個後端服務, 實現評論的時序展示與分頁

4.   假如用 id 翻頁的方式, 資料庫表如何設計? 索引如何設計?

5.   假如量很大, 你覺得需要分庫分表嗎? 怎麼分?

6.   分庫分表後怎麼查詢分頁?

7.   分庫分表後怎麼保證主鍵仍然是遞增的?

8.   現在需要支援深分頁, 頁碼直接跳轉, 怎麼實現?

9.   瞬時寫入量很大可能會打掛儲存, 怎麼保護?

10. 斷路器內部怎麼實現的?

11. 斷路器會造成寫入失敗, 假如我們不允許寫入失敗呢?

12. 演算法題: N 場演唱會, 以 [{startTime, endTime}…] 的形式給出, 計算出最多能聽幾場演唱會。用你最熟悉的語言把這個演算法實現

13. 你用了貪心法, 貪心可能會存在什麼問題?

面試題答案,獲取方式

需要獲取得話麻煩一鍵三連之後看下圖小助理的微信:(vip1024x)新增即可免費獲取到哦

 

相關文章