2021年突破年薪百萬難關!吃透這套Java真題合集

前言

我相信大多 Java 開發的程式設計師或多或少經歷過BAT一些大廠的面試,也清楚一線網際網路大廠 Java 面試是有一定難度的,小編經歷過多次面試,有滿意的也有備受打擊的。因此呢小編想把自己這麼多次面試經歷以及近期的面試真題來個彙總分析,闡述下如何去準備,去回答面試官的提問,可以和麵試官有個愉快的交談。

小編分享的這份BAT必考Java真題合集包含了效能調優、併發程式設計、框架原始碼、分散式框架、微服務架構、專案實戰、網際網路工具等七個大專題技術點真題模組分享,都是小編在各個大廠面試總結出來的面試真題,已經有很多粉絲靠這份真題合集拿下金三銀四的面試,今天小編在這裡總結分享給到大家!

小編這篇分享篇幅可能有點長,觀看的朋友可以先了解一下目錄

一、效能調優

JVM面試題

MySQL面試題

Tomcat調優面試題

Nginx調優面試題

二、併發程式設計

併發同步(樂觀鎖、悲觀鎖、重入鎖、公平鎖、非公平鎖及鎖的粒度詳解)

Executor執行緒池面試題

三、框架原始碼

Spring ioc面試題

Spring aop面試題

Spring mvc面試題

Spring面試題

Mybatis面試題

四、分散式框架(分散式中介軟體)

RabbitMQ面試題

RocketMQ面試題

Kafka面試題

Redis面試題

Zookeeper面試題

Dubbo面試題

Netty面試題

五、微服務架構

Spring Boot面試題

Spring cloud面試題

六、專案實戰

七、網際網路工具

Linux面試題

一、效能調優

JVM面試題

1、什麼情況下會發生棧記憶體溢位。

java中的棧一般儲存的是棧幀。

所以棧記憶體溢位就是棧幀的數量太多超過了系統預先設定的值,所以導致記憶體溢位。

可能的原因就是方法迴圈呼叫,棧幀充滿了整個棧後溢位。

2、說一下 JVM 的主要組成部分及其作用?

類載入器:載入類檔案到記憶體。Class loader只管載入,只要符合檔案結構就載入,至於能否執行,它不負責,那是有Exectution Engine 負責的。

執行引擎:也叫直譯器,負責解釋命令,交由作業系統執行。

本地庫介面:本地介面的作用是融合不同的語言為java所用

執行時資料區:

3、詳解JVM記憶體模型

java定義記憶體模型的目的是:為了遮蔽各種硬體和作業系統的記憶體訪問之間的差異。 java記憶體模型規定了所有的變數都儲存在主記憶體中,每條執行緒擁有自己的工作記憶體,工作記憶體儲存了主記憶體中變數的副本。

4、說一下 JVM 執行時資料區

5、JVM記憶體為什麼要分成新生代,老年代,持久代。新生代中為什麼要分為Eden和Survivor。

6、深複製和淺複製

7、為什麼要分為Eden和Survivor?為什麼要設定兩個Survivor區?

8、說一下堆疊的區別?

9、你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms和G1,包括原理,流程,優缺點。

10、佇列和棧是什麼?有什麼區別?

11、HotSpot虛擬機器物件探秘

12、JVM記憶體模型的相關知識瞭解多少,比如重排序,記憶體屏障,happen-before,主記憶體,工作記憶體。

13、物件的建立

14、簡單說說你瞭解的類載入器,可以打破雙親委派麼,怎麼打破。

15、為物件分配記憶體

16、什麼是類載入器?

17、處理併發安全問題

18、為什麼需要雙親委派模型?

19、物件的訪問定位

20、說說你知道的幾種主要的JVM引數

21、控制代碼訪問

22、怎麼打破雙親委派模型?

23、直接指標

24、記憶體溢位異常

25、怎麼打出執行緒棧資訊

26、Java會存在記憶體洩漏嗎?請簡單描述

27、垃圾收集器

28、垃圾收集器與記憶體分配策略

29、簡述Java垃圾回收機制

30、GC是什麼?為什麼要GC

31、虛擬機器效能監控與故障處理工具

32、垃圾回收的優點和原理。並考慮2種回收機制

33、垃圾回收器的基本原理是什麼?

34、Java 中都有哪些引用型別?

35、怎麼判斷物件是否可以被回收?

36、垃圾回收器可以馬上回收記憶體嗎?

37、有什麼辦法主動通知虛擬機器進行垃圾回收?

38、在Java中,物件什麼時候可以被垃圾回收

39、JVM中的永久代中會發生垃圾回收嗎

40、說一下 JVM 有哪些垃圾回收演算法?

41、標記-清除演算法標記無用物件,然後進行清除回收。

42、複製演算法

43、標記-整理演算法

44、分代收集演算法

45、虛擬機器類載入機制

46、說一下 JVM 有哪些垃圾回收器?

47、詳細介紹一下 CMS 垃圾回收器?

48、虛擬機器位元組碼執行引擎

49、新生代垃圾回收器和老年代垃圾回收器都有哪些?有什麼區別?

50、類載入及執行子系統的案例與實戰

60、簡述分代垃圾回收器是怎麼工作的?

61、執行緒安全與鎖最佳化

62、記憶體分配策略

63、大物件直接進入老年代

64、物件優先在 Eden 區分配

65、虛擬機器類載入機制

66、描述一下JVM載入Class檔案的原理機制

67、長期存活物件將進入老年代

68、簡述java記憶體分配與回收策率以及Minor GC和Major GC

69、簡述java類載入機制?

70、說一下類裝載的執行過程?

71、什麼是類載入器,類載入器有哪些?

72、JVM調優

73、什麼是雙親委派模型?

74、常用的 JVM 調優的引數都有哪些?

75、說一下 JVM 調優的工具?

MySQL面試題

1、為什麼要使用資料庫

2、MySQL 中有哪幾種鎖?

3、資料儲存在檔案的優缺點?

4、MySQL 中有哪些不同的表格?

5、什麼是SQL?

6、簡述在MySQL 資料庫中 MyISAM 和InnoDB 的區別

7、資料庫三大正規化是什麼

8、MySQL 中InnoDB 支援的四種事務隔離級別名稱,以及逐

9、MySQL的binlog有有幾種錄入格式?分別有什麼區別?

10、CHAR 和VARCHAR 的區別?

11、列對比運算子是什麼?

12、什麼是索引?

13、主鍵和候選鍵有什麼區別?

14、myisamchk 是用來做什麼的?

15、InnoDB引擎的4大特性

16、你怎麼看到為表格定義的所有索引?

17、如果一個表有一列定義為TIMESTAMP,將發生什麼?

18、MySQL_fetch_array 和MySQL_fetch_object 的區別是什麼?

19、索引有哪些優缺點?

20、BLOB 和TEXT 有什麼區別?

21、可以使用多少列建立索引?

22、索引使用場景(重點)

23、MyISAM 表格將在哪裡儲存,並且還提供其儲存格式?

24、MySQL 如何最佳化DISTINCT?

25、如何顯示前 50 行?

26、MySQL 裡記錄貨幣用什麼欄位型別好

27、索引有哪幾種類型?

28、什麼是非標準字串型別?

29、索引的資料結構(b樹,hash)

30、MySQL 支援事務嗎?

31、NOW()和 CURRENT_DATE()有什麼區別?

32、MySQL 有關許可權的表都有哪幾個?

33、列的字串型別可以是什麼?

34、什麼是通用 SQL 函式?

35、MySQL 資料庫作釋出系統的儲存,一天五萬條以上的增量, 預計運維三年,怎麼最佳化?

36、鎖的最佳化策略

37、索引的底層實現原理和最佳化

38、儲存時期

39、什麼情況下設定了索引但無法使用

40、實踐中如何最佳化 MySQL

41、完整性約束包括哪些?

42、最佳化資料庫的方法

43、簡單描述 MySQL 中,索引,主鍵,唯一索引,聯合索引

44、資料庫中的事務是什麼?

45、Myql 中的事務回滾機制概述

46、SQL 注入漏洞產生的原因?如何防止?

47、為表中得欄位選擇合適得資料型別

48、索引演算法有哪些?

49、SQL 語言包括哪幾部分?每部分都有哪些操作關鍵字?

50、對於關係型資料庫而言,索引是相當重要的概念,請回答

51、解釋 MySQL 外連線、內連線與自連線的區別

讀者福利:獲取完整面試題和答案解析可以關注+轉發後私信 關鍵字【真題合集】獲取

Tomcat調優面試題

1、Tomcat是什麼?

2、Tomcat的預設埠是多少,怎麼修改?

3、Tomcat工作模式?

4、tomcat 有哪幾種Connector 執行模式(最佳化)?

5、Tomcat頂層架構

6、Tomcat有幾種部署方式?

7、Connector和Container的微妙關係

8、Tomcat一個請求的完整過程

9、tomcat容器是如何建立servlet類例項?用到了什麼原理?

10、Container架構分析

11、tomcat 如何最佳化?

12、Container如何處理請求的

13、列印類的載入情況及物件的回收情況

14、垃圾回收策略調優

15、共享session處理

16、關於Tomcat的session數目

17、新增JMS遠端監控

18、專業點的分析工具有

19、監視Tomcat的記憶體使用情況

20、記憶體調優

21、Tomcat歷史

22、Tomcat總體架構

23、建立Server

24、你怎樣給 tomcat 去調優?

25、如何加大 tomcat 連線數

26、tomcat 中如何禁止列目錄下的檔案

Nginx調優面試題

1、為什麼Nginx效能這麼高?

2、什麼是Nginx?

3、什麼是正向代理和反向代理?

4、為什麼要用Nginx?

5、Nginx怎麼處理請求的?

6、Nginx應用場景?

7、使用“反向代理伺服器的優點是什麼?

8、Nginx的優缺點?

9、Nginx目錄結構有哪些?

10、Nginx靜態資源?

11、如何用Nginx解決前端跨域問題?

12、基於虛擬主機配置域名

13、location的作用是什麼?

14、Nginx配置檔案nginx。conf有哪些屬性模組?

15、Nginx虛擬主機怎麼配置?

16、基於埠的虛擬主機

17、限流怎麼做的?

18、location的語法能說出來嗎?

19、Location正則案例

20、限制併發連線數

21、為什麼要做動靜分離?

22、漏桶流演算法和令牌桶演算法知道?

23、突發限制訪問頻率(突發流量):

24、Nginx負載均衡的演算法怎麼實現的?策略有哪些?

25、怎麼限制瀏覽器訪問?

26、Rewrite全域性變數是什麼?

27、正常限制訪問頻率(正常流量):

28、Nginx怎麼判斷別IP不可訪問?

29、Nginx怎麼做的動靜分離?

二、併發程式設計

多執行緒面試題:

1、什麼是多執行緒,多執行緒的優劣?

2、併發程式設計的優缺點:

3、在 Java 程式中怎麼保證多執行緒的執行安全?

4、並行和併發有什麼區別?

5、併發程式設計有什麼缺點

6、併發程式設計三要素是什麼?

7、程序與執行緒的區別?

8、什麼是執行緒和程序?

9、為什麼要使用併發程式設計?

10、什麼是上下文切換?

11、如何在 Windows 和 Linux 上查詢哪個執行緒cpu利用率最高?

12、執行緒和程序區別

13、什麼是執行緒死鎖?

14、如何避免執行緒死鎖?

15、守護執行緒和使用者執行緒有什麼區別呢?

16、建立執行緒有哪幾種方式?

17、說一下 runnable 和 callable 有什麼區別?

18、執行緒的 run()和 start()有什麼區別?

19、形成死鎖的四個必要條件是什麼?

20、說說執行緒的生命週期及五種基本狀態?

21、為什麼我們呼叫 start() 方法時會執行 run() 方法,為什麼我們不能直接呼叫 run() 方法?

22、什麼是 Callable 和 Future?

23、什麼是執行緒排程器(Thread Scheduler)和時間分片(Time Slicing )?

24、sleep() 和 wait() 有什麼區別?

25、你是如何呼叫 wait() 方法的?使用 if 塊還是迴圈?為什麼?

26、請說出與執行緒同步以及執行緒排程相關的方法。

27、什麼是 FutureTask?

28、為什麼執行緒通訊的方法 wait(), notify()和 notifyAll()被定義在 Object 類裡?

29、Java 中用到的執行緒排程演算法是什麼?

30、執行緒的排程策略

31、Thread 類中的 yield 方法有什麼作用?

32、為什麼 Thread 類的 sleep()和 yield ()方法是靜態的?

33、Java 中 interrupted 和 isInterrupted 方法的區別?

34、如何停止一個正在執行的執行緒?

35、什麼是阻塞式方法?

36、為什麼 wait(), notify()和 notifyAll()必須在同步方法或者同步塊中被呼叫?

37、執行緒的 sleep()方法和 yield()方法有什麼區別?

38、如何在兩個執行緒間共享資料?

39、Java 如何實現多執行緒之間的通訊和協作?

40、Java 中你怎樣喚醒一個阻塞的執行緒?

41、在監視器(Monitor)內部,是如何做執行緒同步的?程式應該做哪種級別的同步?

42、notify() 和 notifyAll() 有什麼區別?

43、同步方法和同步塊,哪個是更好的選擇?

44、在 Java 程式中怎麼保證多執行緒的執行安全?

45、如果你提交任務時,執行緒池佇列已滿,這時會發生什麼

46、什麼叫執行緒安全?servlet 是執行緒安全嗎?

47、執行緒類的構造方法、靜態塊是被哪個執行緒呼叫的

48、什麼是執行緒同步和執行緒互斥,有哪幾種實現方式?

49、一個執行緒執行時發生異常會怎樣?

50、synchronized 的作用?

51、說說自己是怎麼使用 synchronized 關鍵字,在專案中用到了嗎

52、Java 中怎麼獲取一份執行緒 dump 檔案?你如何在 Java 中獲取執行緒堆疊?

53、你對執行緒優先順序的理解是什麼?

54、Java 執行緒數過多會造成什麼異常?

55、什麼是自旋?

56、當一個執行緒進入一個物件的 synchronized 方法 A 之後,其它執行緒是否可進入此物件的 synchronized 方法 B?

57、執行緒 B 怎麼知道執行緒 A 修改了變數

58、synchronized、volatile、CAS 比較

59、synchronized 和 ReentrantLock 區別是什麼?

60、說一下 synchronized 底層實現原理?

61、synchronized 和 Lock 有什麼區別?

62、多執行緒中 synchronized 鎖升級的原理是什麼?

63、volatile 能使得一個非原子操作變成原子操作嗎?

64、volatile 關鍵字的作用

65、volatile 修飾符的有過什麼實踐?

66、Java 中能建立 volatile 陣列嗎?

67、Java Concurrency API 中的 Lock 介面(Lock interface)是什麼?對比同步它有什麼優勢?

68、什麼是 CAS?

69、什麼是死鎖?

70、volatile 變數和 atomic 變數有什麼不同?

71、synchronized 和 volatile 的區別是什麼?

72、CAS 的會產生什麼問題?

73、產生死鎖的條件是什麼?怎麼防止死鎖?

74、死鎖與活鎖的區別,死鎖與飢餓的區別?

75、多執行緒鎖的升級原理是什麼?

76、樂觀鎖和悲觀鎖的理解及如何實現,有哪些實現方式?

Executor執行緒池面試題

1、什麼是 Executor 框架?

2、有哪幾種建立方式?

3、在 Java 中 Executor 和 Executors 的區別?

4、執行緒池有什麼優點?

5、為什麼使用 Executor 框架?

6、什麼是執行緒組,為什麼在 Java 中不推薦使用?

7、什麼是執行緒池?

8、你知道怎麼建立執行緒池嗎?

9、ThreadPoolExecutor建構函式重要引數分析?

10、執行緒池中 submit() 和 execute() 方法有什麼區別?

11、執行緒池都有哪些狀態?

12、ThreadPoolExecutor飽和策略?

13、Executors和ThreaPoolExecutor建立執行緒池的區別?

14、在 Java Concurrency API 中有哪些原子類(atomic classes)?

15、什麼是原子操作?

16、說一下 atomic 的原理?

17、併發工具之CountDownLatch與CyclicBarrier

18、在 Java 中 CycliBarriar 和 CountdownLatch 有什麼區別?

19、ScheduledThreadPoolExecutor詳解FutureTask詳解?

20、Semaphore 有什麼作用

21、什麼是執行緒間交換資料的工具Exchanger

22、併發工具之Semaphore與Exchanger

23、常用的併發工具類有哪些?

三、框架原始碼

Spring ioc面試題

1、在配置類上寫@CompentScan 註解來進行包掃描

2、你對spring ioc容器的定義:

3、xml 配置檔案的形式 和配置類的形式的區別

4、FilterType。CUSTOM 自定義型別如何使用?

5、排除用法 excludeFilters

6、說說@ComponentScan。Filter type 的型別

7、什麼是 bean 的生命週期?

8、如何@Scope 指定的作用域方法取值?

9、如何透過實現 FacotryBean 介面來實現註冊元件?

10、AnnotationConfigApplicationContex 的建立為我們做了什麼?

11、如何透過 InitializingBean 和 DisposableBean 的二個介面實現?

12、我們自己的元件如何使用 Spring Ioc 底層元件?

13、控制反轉(IOC)有什麼作用

14、IOC的優點是什麼?

15、Spring IOC 的實現機制

Spring aop面試題

1、什麼是Spring AOP?

2、簡述一下Spring AOP的設計原理

3、代理如何進行建立和呼叫的?

4、Spring中有哪些通知型別(advice)?

5、在Spring AOP中關注點和橫切關注點有什麼不同?

6、Spring AOP的代理是什麼?

7、說說AspectJAutoProxyRegistrar 類是用來幹什麼的?

8、代理物件建立

9、代理物件呼叫目標方法

Spring mvc面試題

1、Spring MVC的控制器是不是單例模式,如果是,有什麼問題,怎麼解決?

2、什麼是Spring MVC?簡單介紹下你對Spring MVC的理解?

3、什麼是Spring MVC框架的控制器?

4、Spring MVC的主要元件?

5、請描述Spring MVC的工作流程?

6、什麼是DispatcherServlet

7、描述一下 DispatcherServlet 的工作流程?

8、Spring MVC的優點

9、註解原理是什麼

10、SpingMvc中的控制器的註解一般用哪個,有沒有別的註解可以替代?

11、MVC框架

12、MVC是什麼?MVC設計模式的好處有哪些

13、@RequestMapping註解的作用

14、@ResponseBody註解的作用

15、Spring MVC常用的註解有哪些?

16、@PathVariable和@RequestParam的區別

17、Spring MVC與Struts2區別

18、@Controller註解的作用

19、Spring MVC怎麼和AJAX相互呼叫的?

20、Spring MVC的異常處理?

21、如果在攔截請求中,我想攔截get方式提交的方法,怎麼配置

22、怎樣在方法裡面得到Request,或者Session?

23、Spring MVC中函式的返回值是什麼?

24、Spring MVC怎麼樣設定重定向和轉發的?

25、Spring MVC用什麼物件從後臺向前臺傳遞資料的?

26、Spring MVC裡面攔截器是怎麼寫的

27、如何解決POST請求中文亂碼問題,GET的又如何處理呢?

28、如果想在攔截的方法裡面得到從前臺傳入的引數,怎麼得到?

29、如果前臺有很多個引數傳入,並且這些引數都是一個物件的,那麼怎麼樣快速得到這個物件?

30、怎麼樣把ModelMap裡面的資料放入Session裡面?

Spring面試題

1、Spring的優缺點是什麼?

2、什麼是spring?

3、Spring框架的設計目標,設計理念,和核心是什麼

4、Spring的倆大核心概念

5、Spring 應用程式有哪些不同元件?

6、Spring 框架中都用到了哪些設計模式?

7、Spring框架中有哪些不同型別的事件

8、詳細講解一下核心容器(spring context應用上下文) 模組

9、Spring有哪些應用場景

10、Spring由哪些模組組成?

11、什麼是基於Java的Spring註解配置? 給一些註解的例子

12、怎樣開啟註解裝配?

13、@Required 註解有什麼作用

14、使用 Spring 有哪些方式?

15、@Autowired和@Resource之間的區別

16、@RequestMapping 註解有什麼用?

17、解釋物件/關係對映整合模組

18、spring DAO 有什麼用?

19、spring JDBC API 中存在哪些類?

20、使用Spring透過什麼方式訪問Hibernate?

21、Spring事務的實現方式和實現原理

22、Spring支援的事務管理型別, spring 事務實現方式有哪些?

23、@Qualifier 註解有什麼作用

24、使用 Spring 訪問 Hibernate 的方法有哪些?

25、Spring框架的事務管理有哪些優點?

26、解釋JDBC抽象和DAO模組

Mybatis面試題

1、傳統JDBC開發存在的問題

2、MyBatis是什麼?

3、MyBatis框架適用場景

4、ORM是什麼

5、Mybatis優缺點

6、為什麼說Mybatis是半自動ORM對映工具?它與全自動的區別在哪裡?

7、Hibernate 和 MyBatis 的區別

8、MyBatis程式設計步驟是什麼樣的?

9、JDBC程式設計有哪些不足之處,MyBatis是如何解決這些問題的?

10、MyBatis的功能架構是怎樣的

11、為什麼需要預編譯

12、請說說MyBatis的工作原理

13、Mybatis都有哪些Executor執行器?它們之間的區別是什麼?

14、MyBatis的解析和執行原理

15、Mybatis中如何指定使用哪一種Executor執行器?

16、模糊查詢like語句該怎麼寫

17、MyBatis的框架架構設計是怎麼樣的

18、在mapper中如何傳遞多個引數

19、如何獲取生成的主鍵

20、什麼是MyBatis的介面繫結?有哪些實現方式?

21、Mapper 編寫有哪幾種方式?

22、當實體類中的屬性名和表中的欄位名不一樣 ,怎麼辦

23、Mybatis是否支援延遲載入?如果支援,它的實現原理是什麼?

24、使用MyBatis的mapper介面呼叫時有哪些要求?

25、簡述Mybatis的Xml對映檔案和Mybatis內部資料結構之間的對映關係?

26、簡述Mybatis的外掛執行原理,以及如何編寫一個外掛。

27、Mybatis是如何將sql執行結果封裝為目標物件並返回的?都有哪些對映形式?

28、Mybatis如何執行批次操作

29、Mybatis對映檔案中,如果A標籤透過include引用了B標籤的內容,請問,B標籤能否定義在A標籤的後面,還是說必須定義在A標籤的前面?

30、Mybatis的Xml對映檔案中,不同的Xml對映檔案,id是否可以重複?

31、Mybatis是否可以對映Enum列舉類?

32、Mybatis的一級、二級快取

33、Mybatis是如何進行分頁的?分頁外掛的原理是什麼?

34、Xml對映檔案中,除了常見的select|insert|updae|delete標籤之外,還有哪些標籤?

35、Mybatis動態sql是做什麼的?都有哪些動態sql?能簡述一下動態sql的執行原理不?

36、MyBatis實現一對一,一對多有幾種方式,怎麼操作的?

四、分散式框架(分散式中介軟體)

RabbitMQ面試題

1、解耦、非同步、削峰是什麼?

2、什麼是MQ?

3、你們公司生產環境用的是什麼訊息中介軟體?

4、MQ的優點?

5、Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什麼優缺點?

6、訊息佇列有什麼缺點

7、rabbitmq 的使用場景

8、什麼是RabbitMQ?

9、RabbitMQ的工作模式

10、MQ 有哪些常見問題?如何解決這些問題?

11、 訊息如何分發?

12、RabbitMQ基本概念

13、訊息基於什麼傳輸?

14、如何保證RabbitMQ訊息的順序性?

15、如何保證訊息不被重複消費?或者說,如何保證訊息消費時的冪等性?

16、如何保證RabbitMQ訊息的可靠傳輸?

17、如何保證高可用的?RabbitMQ 的叢集

18、訊息怎麼路由?

19、如何解決訊息佇列的延時以及過期失效問題?

20、訊息佇列滿了以後該怎麼處理?有幾百萬訊息持續積壓幾小時,怎麼辦?

21、 為什麼不應該對所有的 message 都使用持久化機制?

22、如何確保訊息正確地傳送至 RabbitMQ? 如何確保訊息接收方消費了訊息?

23、設計MQ思路

讀者福利:獲取完整面試題和答案解析可以關注+轉發後私信 關鍵字【真題合集】獲取

RocketMQ面試題

1、中小型公司首選RabbitMQ的原因是?

2、訊息低延遲的原因?

3、Broker的Buffer滿了怎麼辦?

4、回溯訊息:

5、訊息中介軟體的主要功能是?

6、RabbitMQ是什麼?

7、RabbitMQ物理部署結構?

8、RabbitMQ的邏輯結構?

9、RabbitMQ資料儲存結構是怎麼樣的?

10、RabbitMQ的使用場景?

11、RabbitMQ的基本概念?

12、RabbitMQ的工作模式?

Kafka面試題

1、producer 是否直接將資料傳送到 broker 的 leader(主節點)?

2、Kafka 的設計時什麼樣的呢?

3、Kafka 訊息是採用 Pull 模式,還是 Push 模式?

4、Kafka 高效檔案儲存設計特點:

5、Kafka 判斷一個節點是否還活著有那兩個條件?

6、Kafa consumer 是否可以消費指定分割槽訊息?

7、資料傳輸的事物定義有哪三種?

8、Kafka 儲存在硬碟上的訊息格式是什麼?

9、Kafka 新建的分割槽會在哪個目錄下建立

10、kafka 的 ack 機制

11、消費者負載均衡策略

12、Kafka 的消費者如何消費資料

13、Kafka 與傳統訊息系統之間有三個關鍵區別

14、partition 的資料如何儲存到硬碟

15、Kafka 建立 Topic 時如何將分割槽放置到不同的 Broker 中

16、kafaka 生產資料時資料的分組策略

17、資料有序

18、資料一致性保證

Redis面試題

1、Redis回收使用的是什麼演算法?

2、什麼是Redis?

3、Redis有哪些資料型別

4、Redis有哪些優缺點?

5、Redis回收程序如何工作的?

6、使用redis有哪些好處?

7、為什麼要用 Redis / 為什麼要用快取

8、假如Redis裡面有1億個key,其中有10w個key是以某個固定的已知的字首開頭的,如果將它們全部找出來?

9、Redis為什麼這麼快

10、Redis的應用場景

11、為什麼要用 Redis 而不用 map/guava 做快取?

12、如何選擇合適的持久化方式

13、使用Redis做過非同步佇列嗎,是如何實現的

14、Redis key的過期時間和永久有效分別怎麼設定?

15、我們知道透過expire來設定key 的過期時間,那麼對過期的資料怎麼處理呢?

16、Redis如何實現延時佇列

17、持久化

18、Redis 的持久化機制是什麼?各自的優缺點?

19、Redis主要消耗什麼物理資源?

20、Redis的記憶體淘汰策略有哪些

21、Redis持久化資料和快取怎麼做擴容?

22、Redis的過期鍵的刪除策略

23、Redis的記憶體用完了會發生什麼?

24、什麼是事務?

25、MySQL裡有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料

26、事務管理(ACID)概述

27、Redis如何做記憶體最佳化?

28、Redis事務保證原子性嗎,支援回滾嗎

29、哨兵模式

30、基於客戶端分配

31、Redis執行緒模型

32、Redis事務支援隔離性嗎

33、Redis事務的概念

34、Redis叢集之間是如何複製的?

35、Redis事務的三個階段

36、Redis事務相關命令

37、Redis事務其他實現

38、Redis叢集最大節點個數是多少?

39、官方Redis Cluster 方案(服務端路由查詢)

40、為什麼要做Redis分割槽?

41、基於代理伺服器分片

42、說說Redis雜湊槽的概念?

43、Redis叢集會有寫操作丟失嗎?為什麼?

44、生產環境中的 redis 是怎麼部署的?

45、Redis叢集的主從複製模型是怎樣的?

46、Redis是單執行緒的,如何提高多核CPU的利用率?

47、Redis 主從架構

48、Redis實現分散式鎖

49、Redis官方為什麼不提供Windows版本?

50、Redis叢集如何選擇資料庫?

51、Redis如何做大量資料插入?

52、Redis分割槽有什麼缺點?

53、一個字串型別的值能儲存最大容量是多少?

54、什麼是redis穿透?

55、如何解決 Redis 的併發競爭 Key 問題

56、什麼是redis穿透?

57、Redis和Redisson有什麼關係?

58、你知道有哪些Redis分割槽實現方案?

59、什麼是 RedLock

60、快取熱點key

61、Redis與Memcached的區別

62、什麼是redis雪崩?

63、Redis常見效能問題和解決方案?

64、快取預熱

65、快取降級

66、分散式Redis是前期做還是後期規模上來了再做好?為什麼?

67、如何保證快取與資料庫雙寫時的資料一致性?

68、Redis支援的Java客戶端都有哪些?官方推薦用哪個?

69、Jedis與Redisson對比有什麼優缺點?

70、熱點資料和冷資料

Zookeeper面試題

1、叢集支援動態新增機器嗎?

2、 ZooKeeper 是什麼?

3、 叢集最少要幾臺機器,叢集規則是怎樣的?

4、 Zookeeper 對節點的 watch 監聽通知是永久的嗎?為什麼不是永久的?

5、Zookeeper 檔案系統

7、 Zookeeper Watcher 機制 —— 資料變更通知

8、 Zookeeper 的典型應用場景

9、說說ZooKeeper檔案系統

10、Zookeeper節點宕機如何處理?

11、說幾個 zookeeper 常用的命令。

12、Zookeeper 有哪幾種幾種部署模式?

13、ZooKeeper 提供了什麼?

14、Zookeeper的java客戶端都有哪些?

15、Zookeeper有哪幾種幾種部署模式?

16、ZAB 協議?

17、Zookeeper的典型應用場景?

18、 ZAB 和 Paxos 演算法的聯絡與區別?

19、四種類型的資料節點 Znode

20、Znode有哪些型別

21、客戶端註冊 Watcher 實現

22、 ACL 許可權控制機制

23、服務端處理Watcher的流程?

24、客戶端回撥 Watcher流程?

25、客戶端回撥 Watcher

26、說一下Zookeeper Watcher機制

27、Zookeeper對節點的 watch監聽通知是永久的嗎?為什麼不是永久的?

28、客戶端註冊Watcher的流程?

29、說說ACL許可權控制機制

30、Chroot 特性

31、 zookeeper 負載均衡和 nginx 負載均衡區別

32、Zookeeper 下 Server 工作狀態

33、Zookeeper 下 Server工作狀態有哪些?

34、ZooKeeper和dubbo的區別?

35、zookeeper 是如何保證事務的順序一致性的?

36、分散式叢集中為什麼會有 Master?

Dubbo面試題

1。 為什麼要用 Dubbo?

2。 Dubbo 是什麼?

3。 Dubbo 的使用場景有哪些?

4。 Dubbo 核心功能有哪些?

5。 Dubbo 核心元件有哪些?

6。 Dubbo 伺服器註冊與發現的流程?

7。 Dubbo 的整體架構設計有哪些分層?

8。 Dubbo Monitor 實現原理?

9。 Dubbo 類似的分散式框架還有哪些?

10。 Dubbo 和 Spring Cloud 有什麼關係?

11。 Dubbo 和 Spring Cloud 有什麼哪些區別?

12。 Dubbo 和 Dubbox 之間的區別?

13。 Dubbo 有哪些註冊中心?

14。 Dubbo 的註冊中心叢集掛掉,釋出者和訂閱者之間還能通訊麼?

15。 Dubbo叢集提供了哪些負載均衡策略?

16。 Dubbo的叢集容錯方案有哪些?

17。 Dubbo 配置檔案是如何載入到 Spring 中的?

18。 說說核心的配置有哪些?

19。 Dubbo 超時設定有哪些方式?

20。 服務呼叫超時會怎麼樣?

23。 Dubbo 用到哪些設計模式?

24。 服務上線怎麼相容舊版本?

25。 Dubbo telnet 命令能做什麼?

26。 Dubbo 支援服務降級嗎?

26。 Dubbo 支援服務降級嗎?

28。 Dubbo SPI 和 Java SPI 區別?

29。 Dubbo 支援分散式事務嗎?

30。 Dubbo 可以對結果進行快取嗎?

31。 Dubbo 必須依賴的包有哪些?

32。 Dubbo 支援哪些序列化方式?

33。 Dubbo 在安全方面有哪些措施?

34。 服務呼叫是阻塞的嗎?

35。 服務提供者能實現失效踢出是什麼原理?

36。 同一個服務多個註冊的情況下可以直連某一個服務嗎?

37。 Dubbo 服務降級,失敗重試怎麼做?

38。Dubbo 使用過程中都遇到了些什麼問題?

39。 為什麼要有RPC

40。 什麼是RPC

41。 PRC架構元件

42。 RPC和SOA、SOAP、REST的區別

Netty面試題

1、Netty 執行緒模型和 Reactor 模式

2、Netty 是什麼?

3、Netty 設計模式

4、Netty 的特點是什麼?

5、Netty 單機百萬實戰

6、Netty 支援哪些心跳型別設定?

7、JDK原生NIO程式的問題

8、Netty常見使用場景

9、Netty 傳送訊息有幾種方式?

10、如何選擇序列化協議?

11、Netty 和 Tomcat 的區別?

12、Netty 的優勢有哪些?

13、Netty解碼器 Decoder

14、Netty 的應用場景有哪些?

15、TCP 粘包/拆包的原因及解決方法?

16、Netty 高效能表現在哪些方面?

17、BIO、NIO和AIO的區別?

18、NIO的組成?

19、Netty 中有哪種重要元件?

20、Netty的執行緒模型?

21、NIOEventLoopGroup原始碼?

22、什麼是 Netty 的零複製?

23、瞭解哪幾種序列化協議?

24、預設情況 Netty 起多少執行緒?

25、何時啟動?

五、微服務架構

讀者福利:獲取完整面試題和答案解析可以關注+轉發後私信 關鍵字【真題合集】獲取

Spring Boot面試題

1、 Spring Boot 中如何實現定時任務 ?

2、SpringBoot 實現熱部署有哪幾種方式?

3、 Spring Boot 有哪些優點?

4、 SpringBoot Starter的工作原理

5、 Spring Boot 支援哪些日誌框架?推薦和預設的日誌框架是哪個?

6、 Spring Boot 的核心註解是哪個?它主要由哪幾個註解組成的?

7、Spring Boot 打成的 jar 和普通的 jar 有什麼區別 ?

8、 SpringBoot支援什麼前端模板,

9、 Spring Boot 需要獨立的容器執行嗎?

10、 spring-boot-starter-parent 有什麼用 ?

11、 SpringBoot如何實現打包

12、開啟 Spring Boot 特性有哪幾種方式?

13、執行 Spring Boot 有哪幾種方式?

14、Spring Boot 2。X 有什麼新特性?與 1。X 有什麼區別?

15、如何在 Spring Boot 啟動的時候執行一些特定的程式碼?

16、spring boot 核心配置檔案是什麼?bootstrap。properties 和 application。properties 有何區別 ?

17、Spring Boot 是否可以使用 XML 配置 ?

18、Async非同步呼叫方法

19、 什麼是 Spring Profiles?

20、SpringBoot的缺點

21、Spring Boot 有哪幾種讀取配置的方式?

22。 什麼是 YAML?

23、什麼是 Spring Boot?

24、 你如何理解 Spring Boot 配置載入順序?

25、 什麼是 JavaConfig?

26、SpringBoot與SpringCloud 區別

27、YAML 配置的優勢在哪裡 ?

28、SpringBoot事物的使用

29、 SpringBoot的自動配置原理是什麼

30、為什麼要用SpringBoot

31、 SpringBoot微服務中如何實現 session 共享 ?

32、 SpringBoot多資料來源拆分的思路

33、 我們如何監視所有 Spring Boot 微服務?

34、 如何實現 Spring Boot 應用程式的安全性?

35、 保護 Spring Boot 應用有哪些方法?

36、 比較一下 Spring Security 和 Shiro 各自的優缺點 ?

37、 SpringBoot效能如何最佳化

38、您使用了哪些 starter maven 依賴項?

39、 Spring Boot 中如何解決跨域問題 ?

40、 Spring Boot 中的監視器是什麼?

41、SpringBoot多資料來源事務如何管理

42、 如何使用 Spring Boot 實現全域性異常處理?

43、 Spring Boot 中的 starter 到底是什麼 ?

44、 如何重新載入 Spring Boot 上的更改,而無需重新啟動伺服器?Spring Boot專案如何熱部署?

Spring cloud面試題

1、SpringBoot和SpringCloud的區別?

2、什麼是微服務架構

3、 使用 Spring Boot 開發分散式微服務時,我們面臨什麼問題?

4、 Spring Cloud 是什麼

5、 Spring Cloud和SpringBoot版本對應關係

5、 SpringCloud的優缺點

6、 Spring Cloud 和dubbo區別?

7、 什麼是Eureka

8、 為什麼需要學習Spring Cloud

9、SpringCloud由什麼組成

10、 什麼是Eureka的自我保護模式,

11、Eureka和ZooKeeper都可以提供服務註冊與發現的功能,請說說兩個的區別

17。 閘道器的作用是什麼

18、服務註冊和發現是什麼意思?Spring Cloud 如何實現?

19、 DiscoveryClient的作用

20、 什麼是Spring Cloud Zuul(服務閘道器)

21、 Eureka怎麼實現高可用

22、 閘道器與過濾器有什麼區別

23、 既然Nginx可以實現閘道器?為什麼還需要使用Zuul框架

24、Zuul閘道器如何搭建叢集

25、什麼是閘道器?

26、 常用閘道器框架有那些?

27、 Ribbon是什麼?

28、Zuul與Nginx有什麼區別?

29、 如何實現動態Zuul閘道器路由轉發

30、 Ribbon底層實現原理

31、ZuulFilter常用有那些方法

32、談談服務雪崩效應

33、服務雪崩效應產生的原因

34、 Nginx與Ribbon的區別

35、 負載平衡的意義什麼?

36、 如何設計一套API介面

37、談談服務降級、熔斷、服務隔離

38、在微服務中,如何保護服務?

39、什麼是 Spring Cloud Bus?

40、什麼是斷路器

41、什麼是Spring Cloud Confifig?

42、SpringCloud有幾種呼叫介面方式

43、Ribbon和Feign呼叫服務的區別

44、分散式配置中心的作用?

45、服務降級底層是如何實現的?

46、分散式配置中心有那些框架?

47、什麼是Feign?

48、什麼是Spring Cloud Gateway?

49、SpringCloud Confifig 可以實現實時重新整理嗎?

六、專案實戰

1、Spring Cloud Confifig

2、Spring Cloud Netflflix(重點,這些元件用的最多)

3、Spring Cloud Security

4、Spring Cloud Consul

5、Spring Cloud Task

6、Spring Cloud Sleuth

7、Spring Cloud Stream

8、Spring Cloud和SpringBoot版本對應關係

9、Spring Cloud OpenFeign

10、Spring Cloud Gateway

11、Spring Cloud Zookeeper

12、Spring Cloud的版本關係

13、Spring Cloud Bus

14、Spring Cloud和各子專案版本對應關係

七、網際網路工具

Linux面試題

1、如何規劃一臺 Linux 主機,步驟是怎樣?

2、什麼是Linux

3、Linux 效能調優都有哪幾種方法?

4、什麼是 Linux 核心?

5、BASH和DOS之間的基本區別是什麼?

6、Windows和Linux的區別

7、 請問當使用者反饋網站訪問慢,你會如何處理?

8、 Unix和Linux有什麼區別?

9、Linux的基本元件是什麼?

10、 Linux 開機啟動過程?

11、 Linux 使用的程序間通訊方式?

12、Linux 的體系結構

13、 Linux系統安裝多個桌面環境有幫助嗎?

14、什麼是BASH?

15、 什麼是root帳戶

16、 Linux系統預設的執行級別?

17、什麼是GUI?

18、 Linux 有哪些系統日誌檔案?

19、開源的優勢是什麼?

20、 Linux 的目錄結構是怎樣的?

21、什麼是交換空間?

22、什麼是硬連結和軟連結?

23、 什麼是LILO?

24、 一臺 Linux 系統初始化環境後需要做一些什麼安全工作?

25、 GNU專案的重要性是什麼?

26、 什麼是CLI?

27、 RAID 是什麼?

28、 Shell 指令碼是什麼?

29、 什麼是 inode ?

30、簡單 Linux 檔案系統?

31、什麼是網站資料庫注入?

32、如何選擇 Linux 作業系統版本?

以上就是小編分享的BAT必考Java真題合集,由於篇幅有限,小編已經把每個專題對應的面試題(附答案解析)整理成了文件,下面是整理的真題合集。

該資料獲取方式:關注+轉發後,私信【

真題合集

】獲取上述答案解析!

最後

小編分享的BAT必考Java真題合集整理不易,歡迎大家一起交流,喜歡文章記得關注我點贊喲,感謝支援!重要的事情說三遍!私信小編【真題合集】即可獲取!!

相關文章