2021最新京東、字節跳動「3面面經」盤點大廠後端面試高頻題 京東三面 一面 二面 三面 字節跳動三面 一面 二面 三面 最後

馬上又要到金三銀四,想着面試大軍可能也過不了幾天就要來了。所以今天給大家分享“京東和字節的面經,每家一二三面,我想大家可以自己測試一下能堅持到哪裏。

京東三面

一面

1. 自我介紹

2. 常用的數據結構有哪些?並大說了一些操作的時間複雜度

3. 數組從下標最大的刪與最小的刪有什麼區別?

4. 介紹主要用到的技術(技術棧)

5. 介紹一下集合類

6. list和set的區別?以及各個實現類和底層實現

7. CopyOnWriteList的特點及實現

8. 創建一個線程有幾種方式?項目中怎麼創建的?

9. 講一下線程池

10. 你們使用的任務拒絕策略是那種?

11. 線上服務器最多可以創建多少個線程?

12. 線程的狀態有哪些?(線程的生命週期)

13. 跟線程相關的方法介紹一下

14. HashSet的底層實現

15. 介紹下HashMap和CurrentHashMap

16. HashMap線程不安全會導致什麼問題?

17. 爲什麼1.8版本中會將鏈表轉爲紅黑樹?

18. HashMap解決Hash衝突使用的什麼方式?

19. HashMap的hash函數講一下(如何確定槽位)

20. JVM的內存區域

21. 那個區域不會發生內存溢出?

22. JVM運行時內存?

23. 新生代老年代講講

24. JVM爲什麼分新生代老年代?

25. 垃圾回收算法講講

26. 類加載過程講一下

27. 雙親委派模型講一下

28. Spring的啓動流程

29. SpringBean的作用域

30. SpringBoot的特點

31. 相比於SpringMVC有什麼好用的地方?

32. MySQL的事務隔離級別

33. 講講Java中的鎖?

34. 重入鎖怎麼實現的?

35. Synchronized講講使用及原理

36. Synchronized的優缺點?

37. retryLock瞭解嗎?

38. Java裏的輕量級鎖?

39. 索引瞭解麼?balabala

40. InnoDB還能有什麼索引

41. 爲什麼用索引?項目中怎麼用的?

42. 講一下B+樹的實現

43. B+樹與B樹有什麼區別?

44. MySQL的鎖哪幾種?

45. 行鎖的實現?

46. 你們項目中用到Redis都是怎麼用的?

47. 分佈式鎖你們是怎麼做的?

48. 爲什麼不升級Redis版本?

49. Redis的內存淘汰策略 LRU?

50. 講講項目爲什麼要用Hystrix?

二面

1. 畫項目架構圖

2. 分佈式任務調度系統是怎麼實現的?

3. ElasticSearch都用過那些查詢方式

4. 如何做數據同步的?(MySQL到ES)

5. 如何做CodeReview的?

6. SpringCould都用了那些組件?

7. 什麼場景用到斷路器(Hystrix)

8. 你是如何理解分佈式鎖的?

9. Redis分佈式鎖你們是怎麼用的?

10. Redis你都用到那些命令?

11. Synchronized講講

12. 說說輕量級鎖,無鎖的方式(CAS ABA問題?)

13. 加鎖我們是爲了解決什麼樣的問題?

14. 說說volatile關鍵字

15. 瞭解什麼叫不可變類麼?或者是叫不可變對象?

16. final的含義是什麼?

17. 成員變量都是final修飾的話,如何進行賦值?

18. 如何關閉線程?

19. 手撕代碼。牛客題霸上的原題,可以去看看:NC22合併兩個有序的數組

20. 我有8件事要做,最要要同意返回處理結果,每件事要進行異步的方式去做。你怎麼完成這個需求

21. 我需要在項目啓動時,將一些配置加載到內存中,你有什麼方式能解決?

三面

1. 自我介紹

2. 講講做的項目

3. RabbitMQ優缺點講一下?

4. 分享一下你這個項目的挑戰性嗎?

5. 項目中有遇到什麼問題麼?

6. 講講SpringCould中用到的組件吧?

7. Feign爲什麼效率低?

8. 爲什麼大部分服務對外不提供的接口都是HTTP的?(沒太理解什麼意思)

9. 講講項目中爲什麼會把MySQL升級爲ES?

10. CodeReview你都是怎麼做的?

11. list跟Set有什麼差別?

12. HashMap跟CurrentHashMap有什麼區別?

13. 講講Redis的數據結構

14. 問了問我現在的待遇,有什麼想問我的?

字節跳動三面

一面

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 的墓碑機制是什麼 ?

三面

1. 聊項目和工作經驗

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

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

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

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

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

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

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

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

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

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

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

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

最後

由於篇幅限制,題目答案解析沒能展示出來。不過我已經把以上問題的答案整理成了面試題+答案的專題文檔,有需要獲取到參考借鑑的小夥伴:關注+點贊文章後,私信我【面試資料】即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章