1. 程式人生 > 實用技巧 >10月最新出爐網際網路大廠Java面試真題(快手,京東,滴滴,騰訊,BIGO,網易)

10月最新出爐網際網路大廠Java面試真題(快手,京東,滴滴,騰訊,BIGO,網易)

前言

前面文章為大家對比分析了各個大廠的面試重點都有所不同,今天為大家收集了各個網際網路大廠最新的JAVA面試真題,文章末尾有面試題答案,祝大家都能升職加薪!

快手一面

1. JVM 執行時區域

2. 常見的堆記憶體溢位情況

3. JVM 記憶體分配策略

4. FullGC 的觸發條件有哪些

5. 鎖升級的過程

6. volatile 如何保證可見性的

7. 分散式事務的解決方案

8. MySQL 聚簇索引與普通索引的區別

9. 為什麼要建字首索引

10. B 樹和 B+ 樹的比較

11. 聯合索引

12. Redis 主從複製的過程

13. Redis 跳錶的實現

14. Redis 實現分散式鎖

15. Linux 列印檔案第 10-20 行

16. Linux 檢視當前目錄大小

17. Linux 檢視網路端口占用

18. 演算法題:旋轉有序陣列的最小值(含重複元素)

京東物流一面

1. 專案中用到的技術架構

2. 資料一致性是如何保證的?

3. Spring Bean 例項化有哪幾種方式?

4. Spring 註解這種方式如何使用?

5. Spring 注入的方式?

6. @Autowired 和 @Resource 區別

7. Spring MVC 處理請求的過程,用到了什麼設計模式

8. 責任鏈模式和策略模式的區別

9. Integer 的快取範圍,這是什麼設計模式

10. a == 1 為什麼會報 NullPointerException

11. 二分查詢與順序查詢、樹查詢的比較

12. Mybatis 二級快取原理

13. Redis 底層資料結構

14. Redis String 型別的最大容量

15. Redis 如何實現分散式鎖

16. XA 事務和 TCC 的區別

17. 如何解決 XA/TCC 的單點問題(資料分片)

京東物流二面

• 自我介紹

• 專案介紹

• 專案難點(線上問題排查)

• 訊息佇列的選型

• Spring AOP 原理和應用

• 鏈路追蹤

• 最近在學什麼技術

• Kafka 如何做到高效能

京東物流三面

1. 簡單介紹下 RabbitMQ

2. RabbitMQ 如何保證訊息一致性的

3. 開啟 ACK 後的具體流程是怎樣的

4. RabbitMQ 如何保證高可用的

5. RabbitMQ 叢集模式下主宕機瞭如何選主

6. 線上機器 CPU 突然增高如何處理

7. 介面不定時出現高時延如何處理

8. 處理過哪種線上問題

9. 如何加速計算 1+2...+100

網易有道一面

• 如果因為 MQ 引起的傳送失敗,怎麼處理?

• 訊息佇列和 HTTP 呼叫的區別是什麼?

• 如果 HTTP 呼叫也失敗了怎麼辦?

• 訊息佇列訊息堆積了幾個小時資料怎麼處理?

• 為什麼不直接擴充套件消費端呢?而是引入新的訊息佇列?

• MQ 有哪些應用場景?這裡主要用來解決什麼問題呢?

• 閘道器選型 Zuul 和 Spring Cloud Gateway

• Eureka 服務發現的原理

• 服務發現選型應該要考慮的因素有哪些?

• MySQL 效能優化指什麼?

• MySQL 優化的經驗或知識?

• 為什麼使用索引可以加速查詢?

• 為什麼 B+ 樹和 IO 次數有關係?

• 除了我以上問的,其他覺得有擅長但是沒有問到的嗎?

• Spring IOC 原理

• Spring 如何解決迴圈依賴的問題

• 比較熟悉的資料結構有哪些?

• 演算法題:判斷一個連結串列是否有環

• 系統設計題:準備一批文字,收集使用者的錄音。使用者獲取待讀文字,然後提交。要求每個文字只能被讀一次,以及統計每個使用者讀了多少條。

建議:瞭解用到技術的原理

BIGO 一面

• 介紹下專案的大體框架

• 你負責哪幾部分

• 流量 QPS 估計

• 閘道器裡的限流、黑白名單這些功能是自帶的還是自己實現的

• 有了解過 nginx 嗎

• nginx 和 閘道器的關係是什麼

• 服務發現的原理

• Eureka 的容災

• 自我保護期間請求怎麼處理

• 訂單的資料一致性如何實現的

• 支付沒有通知會怎麼處理?

• 詳細介紹一下本地訊息表

• 服務是分散式多節點的,資料呢?

• 假設資料庫分散在全國國內,如何處理請求分佈到不同地點的資料庫中

• 假設在北京下訂單,但是跑到廣州還款,如果就近原則的話, 連的資料庫就不一樣了,怎麼處理?

• 能不能用一個策略,某個使用者的資料指定到一個庫去執行

• Java 8 CompletableFuture 的原理

• Future 的實現原理?Future 有哪些不好的地方

• 集合型別的遍歷方式有哪些

• 集合 foreach 的 API用過嗎

• LinkedHashMap 和 TreeMap 的區別

• TCP 為什麼要四次揮手

• 假設客戶端斷開連線,伺服器不停發資料不斷開,這是允許的嗎

• 客戶端收到 FIN 後回的 ACK 丟了怎麼辦

• 為什麼要等待 2 倍的 MSL 時間

• select、poll 和 epoll 的區別

• NIO 模型

• 簡單描述下 Redis

• Redis 的幾種常用資料結構

• 如何實現一個分散式的棧

• 演算法題:給定一個整數陣列 a 和一個雜湊表 b,b 指定了 a 中的位置,根據 b 調整 a 的位置,如果 b 中的數字 a 不存在,也需要插入。

BIGO 二面

• 專案中做的工作包括哪些

• 服務治理做的相關工作

• Eureka 服務發現的主要功能

• Eureka 服務有多少個例項

• Eureka 服務同步每次都是全量嗎

• Eureka 服務發現的資料一致性

• Eureka 如何保證資料可靠性,如何確認是一致的

• Eureka 如果例項數太多,會面臨同步的問題嗎

• Zuul 限流是如何實現的

• 限流是這一層起作用還是下一層起作用

• 為什麼要在你這一層去做呢?那如何保護自身呢?

• 限流的實現方式,有哪幾種演算法

• 時間視窗與令牌桶的對比

• 配置管理是如何實現的

• 應用配置的場景

• 為什麼選擇 zk 做配置管理

• 為什麼不用 zk 做服務註冊

• 怎麼防止雪崩、服務過載這些

• 網路平時有遇到什麼問題嗎?

• 服務間呼叫丟包、傳輸速度慢,怎麼去解決?

• 如何檢視連線是否丟包

• 大量的連線導致短暫的癱瘓狀態,怎麼去解決?

• HTTP 1.0 和 HTTP 2.0 的區別

• HTTP 2.0 做了哪些優化

• 同一個域名複用一個連線是如何實現的?

• Redis 在專案中用在哪裡

• Redis 常見的資料結構

• Sorted Set 是如何實現的

• 跳錶如何實現 log n 的,跳錶的實現原理

• 為什麼選擇跳錶來實現 Sorted Set

• 常見的垃圾回收演算法有哪些,各自演算法的優缺點

• 演算法題:一個序列表示棧的壓入順序,判斷第二個序列是否為該棧的彈出順序

• follow up:輸出一個序列的所有可能的彈出順序

反問:

• 北京負責的業務?直播業務線、視訊業務線、社交軟體業務線

• 全球產品與國內的區別?運營形態不一樣,文化宗教衝突,跨區伺服器

BIGO 三面

• 自我介紹

• 專案介紹

• 專案中遇到的技術難題有哪些(線上問題排查)

• Spring AOP 底層實現

• Redis 如何進行容災

• Redis 哨兵是怎樣的一個機制

• 如何評估服務的能力?怎麼壓測你的服務?

• 出於什麼考慮想找一份新工作

• 你希望的工作內容或工作方式?

• 演算法題:0-n 中缺失的數字

• 演算法題:微信紅包演算法

• 系統設計:每天 100 萬微博的儲存系統設計

• MySQL 如何平滑擴充套件

美團基礎架構一面

1. 介紹下 JVM 堆疊模型,工作機制

2. 哪些資源是執行緒私有/共有?

3. 棧具體在做什麼事情?

4. 介紹java的執行緒池的原理和排程機制

5. 介紹執行緒池的拒絕策略

6. 如何釋放執行緒池中的執行緒

7. 核心執行緒數如何釋放,可以通過執行緒空閒時間來控制釋放嗎?

8. shutdown, shutdown now 的區別?

9. 常用的鎖有哪些?

10. synchronized 和 ReentrantLock 的區別?他們需要手動的釋放嗎?

11. 介紹一下樂觀鎖,缺點是什麼?如何保證原子性?

12. 常用的垃圾回收演算法有哪些?

13. 描述新生代的回收過程,EMCC的回收過程?

14. 怎麼確定物件是否應該被釋放?

15. 描述NIO的概念

16. 核心態IO的複用的機制?

17. TCP 如何保證可靠性的?

18. HashMap 是如何實現的?

19. ConcurrentHashMap 是如何實現的?

20. kafka的基本原理和架構?

21. 不同的 partition 之間如何容災備份?

22. 同步時 high water

23. RabbitMQ 如何實現容災?

24. RabbitMQ 發生腦裂怎麼處理?

25. 專案中遇到的難點是什麼?如果解決的?

26. 付款過程中的一致性怎麼保證的?

美團基礎架構二面

1. 做服務發現時有遇到什麼問題嗎?

2. Eureka 損失了一致性會帶來什麼問題呢?

3. Eureka 有主嗎?怎麼實現的同步?如果遇到了不一致的問題,誰說了算?

4. 如果多個節點同時嘗試註冊會有問題嗎?

5. Eureka 內部採用的一致性演算法是什麼演算法?

6. 專案歷時時間多久?

7. 專案中遇到的技術難題是什麼?

8. 改進前使用的是什麼垃圾收集器?

9. 用了 CMS 之後配置了哪些引數?

10. 列舉常見的一致性演算法?

11. 介紹 Paxos 原理?缺點是什麼?

12. 本機宕機了怎麼辦?訊息表會丟失的?

13. 資料存在哪裡?訊息表存在磁碟或者記憶體還是遠端的資料庫?

14. 本地訊息表的缺點和優點是什麼?

15. 訊息系統用的是什麼元件?有訊息重複的現象?

16. jdk1.8預設的垃圾收集器是哪個?

17. 看過jdk哪方面的原始碼?

18. 常用的container有哪些?

19. HashMap 和 HashTable的區別是什麼?

20. Spring 的原理是什麼?

21. 介紹切面的底層實現

22. 使用 zk 的時候有遇到什麼問題嗎?

23. 研究最深入的元件是哪個?有哪些看過原始碼?

24. IOC 的本質是什麼?

25. Mysql 的事物隔離級別有哪幾種?有什麼區別?

26. 有看過 Mysql 的原始碼嗎?

27. NIO 瞭解嗎?是什麼?

28. Linux 有多少種IO模型

29. 常用的資料結構有哪些?

30. 二叉樹裡瞭解哪些?

31. 平衡樹是用來做什麼的?

32. B+樹的特點是什麼?

33. 多執行緒併發的類有哪些?

34. 訊號量主要用來做什麼?

35. 程式設計題: 實現一個讀寫鎖

滴滴一面

1. API 是 RESTFul 風格的嗎?設計的時候有哪些規則?使用者 ID 和訂單 ID 會在 url 中嗎?

2. Hadoop、Spark、Docker 技術熟悉嗎?

3. 如何檢視程序 ID 內有多少執行緒?

4. 檢視磁碟資訊 df 命令卡住了,如何排查問題?

5. 如何檢視程序所使用的系統呼叫?

6. 分散式事務,兩階段提交,TCC

7. 程序、執行緒、協程的區別

8. 虛擬地址如何轉到實體地址

9. 程序中的堆區和棧區

10. 殭屍程序

11. HTTP Get 和 Post 的區別

12. HTTP API 如何設計冪等介面

13. 如何設計 HTTP 長連線

14. http2、http3

15. 快排的基本原理

16. 陣列和連結串列的區別

17. 演算法題:反轉連結串列

18. 演算法題:求二叉樹深度

19. Redis 專案中的使用

20. Redis 分散式鎖

21. 高併發的時候是怎麼處理的?(訊息佇列、多執行緒)

22. ORM 框架的 SQL 注入是如何解決的

23. 事務死鎖如何排查?

24. 併發更新同一條記錄如何解決事務死鎖?

25. MySQL 樂觀鎖和悲觀鎖

26. Java 單例模式

27. Java 原子操作

反問:

商業平臺的難點:

對接儲存:hadoop、物件儲存 boos

大資料計算:k8s、spark,大批量資料處理

演算法

滴滴二面

1. JVM 分配記憶體的過程

2. TLAB 的工作機制

3. TLS

4. CMS 併發收集,如何記錄未收集的表

5. 演算法題:合併 K 個連結串列

6. 演算法題:火車排隊

7. 概率題:圓上任意兩個弦相交的概率

8. MySQL 平滑遷庫

9. MySQL 索引

10. MySQL 如何建索引


騰訊-廣告後臺開發工程師一面

1. 自我介紹

2. 專案介紹

3. 為什麼使用訊息佇列?

4. 訊息佇列選型,用 RabbitMQ 為什麼不是 Kafka?(沒答好)

5. 什麼時候出現數據不一致的情況?

6. 為什麼選擇本地訊息法做分散式事務?

7. 什麼是TCC,它的工作過程?

8. TCC 和 XA 的區別?

9. 如果讓你優化XA,你會如何優化?

10. 你如何理解高可用性?

11. 假設RabbitMQ宕機了,怎麼保證服務仍然可用?

12. 你們是如何做服務監控的?高可用級別?幾個9?

13. skywalking 的監控原理

14. 為什麼用微服務架構?有什麼優點?

15. 拆分服務模組是如何考量的?

16. MySQL 的事務隔離級別?為什麼選擇這個隔離級別?什麼是幻讀?

17. MySQL 是如何實現事務的四大特性的?

18. 簡單說下 MVCC 的工作原理。

19. synchronized 和 ReentrantLock

20. 為什麼使用 ReentrantLock 而不是 synchronized?

21. synchronized 和 ReentrantLock 效能上的差別?

22. 鎖升級機制?輕量級鎖自旋的過程?

23. CAS 還需要獲取鎖嗎?

24. 寫個單例模式,選一種你覺得最合適的。(靜態內部類和懶漢模式)

25. 為什麼用靜態內部類?

26. 為什麼要加在例項前 volatile 關鍵字?

27. 服務發現為什麼用 Eureka?還有哪些實現方案?如何選型?

28. SpringBoot 的優勢在哪?有哪些功能?

29. IOC 和 AOP 簡單解釋一下

30. AOP 的實現原理?動態代理是如何實現的?

總結

看了這麼多大廠的面試題,其實發現大廠面試的重點考察物件都是:JVM,多執行緒,MYSQL,spring,微服務,Redis,高併發這幾個知識點。所以小編小編也為大家準備了最適合大廠面試的學習資料。

資料領取:戳這裡免費領取,暗號:CSDN

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述在這裡插入圖片描述

聽說一鍵三連的粉絲都面試成功了?如果本篇部落格對你有幫助,請支援下博主哦
在這裡插入圖片描述