前言
本人情況:雙非軟工,Java背景開發,但是由于後端競争過于激烈,已轉用戶端,感謝位元組爸爸接收零經驗用戶端小白,送上面經回饋大衆。
長達一年的長跑總算畫上圓滿的句号了,從2月份疫情開始就投後端實習,但是準備不是太充分,就被各路大神吊打了,6月份找到了國企實習,秋招初期也拿到不少小廠offer,但是我還是想拼一波大廠,最終11月被位元組撈起來面試,順利OC,感謝之前給我幫助的各位大佬,感謝位元組爸爸。
現在我也來寫面經幫助大家
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB10MFpnTzkkeOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL4UDO0QDOxAjM0IjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
另外我這裡為大家準備了一線大廠面試資料和我原創的超硬核PDF技術文檔,以及我為大家精心準備的多套大廠面試題(不斷更新中),有需要的朋友點這裡備注csdn,自行下載下傳!希望大家都能找到心儀的工作!
一面
- 介紹一下自己, 為什麼選擇出來看看機會
- 聊項目, 警報怎麼做的, 統一接入監控項怎麼做的
- 聊項目, 配置中心項目, 問實時配置推送怎麼做
- 讨論為什麼選擇所有的元件依賴放在配置中心中控制
- 我現在要做一個限流功能, 怎麼做?
- 這個限流要做成分布式的, 怎麼做?
- 怎麼搶鎖?鎖怎麼釋放?
- 加了逾時之後有沒有可能在沒有釋放的情況下, 被人搶走鎖?怎麼解決?
- 不用 zk 的心跳,可以怎麼解決這個問題呢?
- 假如這個限流希望做成可配置的, 需要有一個背景管理系統随意對某個 api 配置全局流量, 怎麼做?
- 某一個業務中現在需要生成全局唯一的遞增 ID, 并發量非常大, 怎麼做?
- 算法題, M*N 橫向縱向均遞增的矩陣找指定數
- 有什麼想問我的?
二面
- 平時用的工具鍊和技術棧是什麼?
- golang 踩過坑嗎?
- 這段 golang 代碼有沒有 bug?
- Java 中 HashMap 的存儲, 沖突, 擴容, 并發通路分别是怎麼解決的?
- 拉鍊法中連結清單過長時變形為紅黑樹有什麼優缺點?
- HashMap 的并發不安全展現在哪?
- HashMap 在擴容時, 對讀寫操作有什麼特殊處理?
- ConcurrentHashMap 是怎麼做到并發安全的?
- Java 有哪些鎖機制, 分别有什麼特點?
- 知道 CAS 嗎? Java 中 CAS 是怎麼實作的?
- MySQL 的存儲引擎用的是什麼?為什麼選 InnoDB?
- MySQL 的聚簇索引和非聚簇索引有什麼差別?
- B+樹和二叉樹有什麼差別和優劣?
- 針對一個場景設計索引,考察的是聯合索引與列選擇性的知識
- 現有一個新的查詢場景, 要怎麼解決?
- 假如要查 A in () AND B in (), 怎麼建索引?
- 查 A in () AND B in () 時, MySQL 是怎麼利用索引的?
- 假如查詢 A in (), MySQL 是針對 N 個值分别查一次索引, 還是有更好的操作?
- 用過 Redis 的哪幾種資料結構?ZSET 是怎麼實作的?
- zrange start, stop, 總長度為 n, 複雜度是多少?
- Kafka 的消費者如何做消息去重?
- 介紹一下 Kafka 的 ConsumerGroup
- Kubernetes 和 Docker 用得怎麼樣?
- 時序型資料庫的存儲結構是怎麼樣的?
- LSM 樹了解嗎? 是一種什麼存儲結構?
- 在生産中用過 Cassandra 和 RocksDB 嗎? 量有多大?
- Cassandra 的墓碑機制是什麼 ?
- 算法題:牛客題霸上的原題,可以去看看:NC76用兩個棧實作隊列
三面
- 聊項目和工作經驗
- 用 Kubernetes 的過程中踩過哪些坑?
- 考慮一個業務場景: 頭條的文章的評論量非常大, 比如說一篇熱門文章就有幾百萬的評論, 設計一個後端服務, 實作評論的時序展示與分頁
- 假如用 id 翻頁的方式, 資料庫表如何設計? 索引如何設計?
- 假如量很大, 你覺得需要分庫分表嗎? 怎麼分?
- 分庫分表後怎麼查詢分頁?
- 分庫分表後怎麼保證主鍵仍然是遞增的?
- 現在需要支援深分頁, 頁碼直接跳轉, 怎麼實作?
- 瞬時寫入量很大可能會打挂存儲, 怎麼保護?
- 斷路器内部怎麼實作的?
- 斷路器會造成寫入失敗, 假如我們不允許寫入失敗呢?
- 算法題: N 場演唱會, 以 [{startTime, endTime}…] 的形式給出, 計算出最多能聽幾場演唱會。用你最熟悉的語言把這個算法實作
- 你用了貪心法, 貪心可能會存在什麼問題?
總結
最後我為大家準備了Java架構學習資料,學習技術内容包含有:Spring,Dubbo,MyBatis, RPC, 源碼分析,高并發、高性能、分布式,性能優化,微服務 進階架構開發等等。有需要的朋友點這裡備注csdn,自行下載下傳,還有Java核心知識點+全套架構師學習資料和視訊+一線大廠面試寶典+面試履歷模闆+阿裡美團網易騰訊小米愛奇藝快手哔哩哔哩面試題+Spring源碼合集+Java架構實戰電子書一起免費分享給大家!