600+ 道 Java面試題及答案整理(2021最新版)


棧長整理了 2021 年最新、最全的 Java 面試題,題目涉及 Java 基礎、集合、多線程、IO、分布式、Spring全家桶、MyBatis、Dubbo、緩存、消息隊列、Linux…等等。

題庫共 600+ 道,帶全部答案,非常齊全!

Java 基礎

1、面向對象編程有哪些特征?
2、JDK 與 JRE 的區別是什么?
3、Java 有哪幾種基本數據類型?
4、== 和 equals 比較有什么區別?
5、public,private,protected,默認的區別?
6、this 和 super 有什么區別?
7、short s1 = 1; s1 += 1;有錯嗎?
8、short s1 = 1; s1 = s1 + 1;有錯嗎?
9、float n = 1.8 有錯嗎?
10、i++ 和 ++i 的區別?
11、while 和 do while 有啥區別?
12、如何跳出 Java 中的循環?
13、如何跳出 Java 中的多層嵌套循環?
14、& 和 && 的區別?
15、2 * 8 最有效率的計算方法是什么?
16、數組有沒有 length 方法?String 呢?
17、怎么理解值傳遞和引用傳遞?
18、Java 到底是值傳遞還是引用傳遞?
19、一個 ".java" 源文件的類有什么限制?
20、Java 中的注釋有哪些寫法?
21、static 關鍵字有什么用?
22、static 變量和普通變量的區別?
23、static 可以修飾局部變量么?
24、final 關鍵字有哪些用法?
25、final、finally、finalize 有什么區別?
26、void 和 Void 有什么區別?
27、為什么 byte 取值范圍為 -128~127?
28、char 類型可以存儲中文漢字嗎?
29、重載和重寫有什么區別?
30、構造器可以被重寫和重載嗎?
31、main 方法可以被重寫和重載嗎?
32、私有方法能被重載或者重寫嗎?
33、Java 中的斷言(assert)是什么?
34、Java 異常有哪些分類?
35、Error 和 Exception 有什么區別?
36、Java 中常見的異常有哪些?
37、Java 中常見的運行時異常有哪些?
38、運行時異常與受檢查異常有什么區別?
39、什么時候會發生空指針異常?
40、你知道有哪些避免空指針的方法?
41、throw 和 throws 的區別?
42、try-catch-finally 中哪個部分可以省略?
43、try 里面 return,finally還會執行嗎?
44、int 和 Integer 有什么區別?
45、什么是包裝類型?有什么用?
46、什么是自動裝廂、拆廂?
47、你怎么理解 Java 中的強制類型轉換?
48、你怎么理解 Java 中的自動類型轉換?
49、你怎么理解 Java 中的類型提升?
50、switch 是否能用在 long 上?
51、switch 是否能用在 String 上?
52、switch case 支持哪幾種數據類型?
53、String 屬於基礎的數據類型嗎?
54、String 類的常用方法都有那些?
55、String 的底層實現是怎樣的?
56、String 是可變的嗎?為什么?
57、String 類可以被繼承嗎?
58、String 真的是不可變的嗎?
59、String 字符串如何進行反轉?
60、String 字符串如何實現編碼轉換?
61、String 有沒有長度限制?是多少?
62、為什么不能用 + 拼接字符串?
63、StringBuffer 和 StringBuilder 的區別?
64、StringJoiner 有什么用?
65、Java 所有類的祖先類是哪個?
66、Object 類有哪些常用的方法?
67、普通類和抽象類有什么區別?
68、靜態內部類和普通內部類有什么區別?
69、靜態方法可以直接調用非靜態方法嗎?
70、靜態變量和實例變量有什么區別?
71、內部類可以訪問其外部類的成員嗎?
72、接口和抽象類有什么區別?
73、接口是否可以繼承接口?
74、接口里面可以寫方法實現嗎?
75、抽象類必須要有抽象方法嗎?
76、抽象類能使用 final 修飾嗎?
77、抽象類是否可以繼承具體類?
78、抽象類是否可以實現接口?
79、怎么查看一個 Java 類的字節碼?
80、Java 中的 UUID 是什么?
81、Java 類初始化順序是怎樣的?
82、為什么成員變量命名不建議用 isXXX?
83、hashCode 有什么用?
84、hashCode 和 identityHashCode 的區別?
85、什么是 hash 沖突?
86、equals 和 hashCode 的區別和聯系?
87、兩個對象 equals 相等, hashCode 也相等么?
88、兩個對象 hashCode 相等,equals 也相等么?
89、為什么重寫 equals 就要重寫 hashCode 方法?
90、Java 常用的元注解有哪些?
91、Java 泛型中的 T、R、K、V、E 分別指什么?
92、Java 金額計算怎么避免精通丟失?
93、Java 語法糖是什么意思?
94、transient 關鍵字有什么用?
95、如何實現對象克隆?
96、對象克隆淺拷貝和深拷貝的區別?
97、Java 反射機制有什么用?
98、Java 反射機制的優缺點?
99、Java 反射機制 Class 類有哪些常用方法?
100、Java 反射可以訪問私有方法嗎?
101、Java 反射可以訪問私有變量嗎?
102、Class.forName 和 ClassLoader 的區別?
103、什么是宏變量和宏替換?
104、什么是逃逸分析?
105、什么是偽共享?有什么解決方案?
106、Java 有沒有 goto 關鍵字?
107、Java 中有沒有指針的概念?
108、Java 中的 classpath 環境變量作用?
109、Math.round(1.5) 等於多少?
110、Math.round(-1.5) 等於多少?
111、Java 8 都新增了哪些新特性?
112、Java 8 中的 Lambda 表達式有啥用?
113、Java 8 中的 Optional 類有什么用?
114、Java 8 中的 Stream 有啥用?
115、Java 8 中的@Repeatable 注解有什么用?
116、Java 8 中的方法引用是指什么?
117、Java 8 中的函數式編程怎么用?
118、怎么創建一個 Stream 流?
119、Oracle JDK 和 OpenJDK 有啥區別?

Java 集合

1、說說常見的集合有哪些?
2、哪些集合類可對元素的隨機訪問?
3、Comparable 和 Comparator 接口的區別?
4、Collection 和 Collections 的區別?
5、Enumeration 和 Iterator 接口的區別?
6、集合使用泛型有什么優點?
7、List、Set、Map 之間的區別是什么?
8、為什么 Map 接口不繼承 Collection 接口?
9、常用的線程安全的 Map 有哪些?
10、HashMap 與 Hashtable 的區別?
11、HashMap 和 TreeMap 怎么選?
12、HashMap 的數據結構是什么?
13、HashMap 在 JDK 8 中有哪些改變?
14、HashMap 的 put 方法邏輯?
15、HashMap 的 get 方法邏輯?
16、HashMap 是線程安全的嗎?
17、HashMap 是怎么解決 hash 沖突的?
18、HashMap 是怎么擴容的?
19、HashMap 如何實現同步?
20、HashMap 中的負載因子是什么?
21、Hashtable 為什么不叫 HashTable?
22、ConcurrentHashMap 的數據結構?
23、ArrayList 是線程安全的么?
24、常用的線程安全的 List 集合有哪些?
25、循環刪除 List 集合可能會發生什么異常?
26、ArrayList 和 LinkedList 的區別?
27、ArrayList 和 Vector 的區別?
28、什么是 CopyOnWriteArrayList?
29、什么是 fail-safe?
30、什么是 fail-fast?
31、fail-fast 與 fail-safe 有什么區別?
32、HashSet 的底層實現原理是什么?
33、怎么確保一個集合不能被修改?

JVM

1、Java 為什么能一次編寫,處處運行?
2、JVM 是什么?
3、HotSpot 是什么?
4、JVM 內存區域分類哪些?
5、堆和棧區別是什么?
6、JVM 哪塊內存區別不會發生內存溢出?
7、什么情況下會發生棧內存溢出?
8、對象都是在堆上分配的嗎?
9、你怎么理解強、軟、弱、虛引用?
10、常用的 JVM 參數有哪些?
11、Java 8 中的內存結構有什么變化?
12、Java 8 中的永久代為什么被移除了?
13、什么是類加載器?
14、類加載器的分類及作用?
15、什么是雙親委派模型?
16、為什么要打破雙親委派模型?
17、可以自定義一個 java.lang.String 嗎?
18、什么是 JVM 內存模型?
19、JVM 內存模型和 JVM 內存結構的區別?
20、什么是指令重排序?
21、內存屏障是什么?
22、什么是 Happens-Before 原則?
23、GC 是什么?為什么需要 GC?
24、什么是 MinorGC 和 FullGC?
25、一次完整的 GC 流程是怎樣的?
26、JVM 如何判斷一個對象可被回收?
27、常用的垃圾收集器有哪些?
28、常用的垃圾回收算法有哪些?
29、什么是內存泄漏?
30、為什么會發生內存泄漏?
31、如何防止內存泄漏?
32、什么是直接內存?
33、直接內存有什么用?
34、怎樣訪問直接內存?
35、常用的 JVM 調優命令有哪些?
36、常用的 JVM 問題定位工具有哪些?
37、常用的主流 JVM 虛擬機都有哪些?

多線程(並發編程)

1、進程和線程的區別?
2、什么是原子性、可見性、有序性?
3、為什么要使用多線程?
4、創建線程有哪幾種方式?
5、什么是守護線程?
6、線程的狀態有哪幾種?怎么流轉的?
7、線程的優先級有什么用?
8、我們常說的 JUC 是指什么?
9、i++ 是線程安全的嗎?
10、join 方法有什么用?什么原理?
11、如何讓一個線程休眠?
12、啟動一個線程是用 start 還是 run 方法?
13、start 和 run 方法有什么區別?
14、sleep 和 wait 方法有什么區別?
15、Thread.yield 方法有什么用?
16、yield 和 sleep 有什么區別?
17、怎么理解 Java 中的線程中斷?
18、你怎么理解多線程分組?
19、你怎么理解 wait、notify、notifyAll?
20、同步和異步的區別?
21、什么是死鎖?
22、怎么避免死鎖?
23、什么是活鎖?
24、什么是無鎖?
25、什么是線程飢餓?
26、什么是 CAS?
27、阻塞和非阻塞的區別?
28、並發和並行的區別?
29、為什么不推薦使用 stop 停止線程?
30、如何優雅地終止一個線程?
31、Synchronized 同步鎖有哪幾種用法?
32、什么是重入鎖(ReentrantLock)?
33、Synchronized 與 ReentrantLock 的區別?
34、synchronized 鎖的是什么?
35、什么是讀寫鎖?
36、公平鎖和非公平鎖的區別?
37、有哪些鎖優化的方式?
38、什么是偏向鎖?
39、什么是輕量級鎖?
40、什么是自旋鎖?
41、什么是鎖消除?
42、什么是鎖粗化?
43、什么是重量級鎖?
44、什么是線程池?
45、使用線程池有什么好處?
46、創建一個線程池有哪些核心參數?
47、線程池的工作流程是怎樣的?
48、Java 里面有哪些內置的線程池?
49、為什么阿里不讓用 Executors 創建線程池?
50、線程池的拒絕策略有哪幾種?
51、如何提交一個線程到線程池?
52、線程池 submit 和 execute 有什么區別?
53、如何查看線程池的運行狀態?
54、如何設置線程池的大小?
55、如何關閉線程池?
56、AQS 是什么?
57、AQS 的底層原理是什么?
58、Java 中的 Fork Join 框架有什么用?
59、ThreadLocal 有什么用?
60、ThreadLocal 有什么副作用?
61、volatile 關鍵字有什么用?
62、volatile 有哪些應用場景?
63、CyclicBarrier 有什么用?
64、CountDownLatch 有什么用?
65、CountDownLatch 與 CyclicBarrier 的區別?
66、Semaphore 有什么用?
67、Exchanger 有什么用?
68、LockSupport 有什么用?
69、Java 中原子操作的類有哪些?
70、什么是 ABA 問題?怎么解決?
71、Java 並發容器,你知道幾個?
72、什么是阻塞隊列?
73、阻塞隊列有哪些常用的應用場景?
74、Java 中的阻塞的隊列有哪些?
75、什么是冪等性?

IO(網絡編程)

1、什么是 IO?
2、常用的 IO 類有哪些?
3、你怎么理解 IO、BIO、NIO、AIO?
4、什么是比特(Bit)、字節(Byte)、字符(Char)?
5、Java 有哪幾種類型的流?
6、字節流和字符流的區別?
7、Java 序列化是什么?
8、怎么序列化一個對象?
9、Java 有哪兩種序列化方式?
10、怎么控制類中的某些變量不被序列化?
11、靜態變量能不能被序列化?
12、OSI 的七層模型都有哪些?
13、tcp 和 udp 協議的區別?
14、tcp 為什么要三次握手,兩次不行嗎?

Web 編程

1、http 和 https 的區別?
2、get 和 post 的區別?
3、forward 和 redirect 的區別?
4、Servlet 是什么?
5、Servlet 的生命周期是怎樣的?
6、Servlet 有哪些核心的方法?
7、Servlet 是線程安全的么?
8、Servlet 支持異步處理嗎?
9、Servlet 是單例還是多例?
10、Servlet 和 JSP 有什么區別和聯系?
11、JSP 是什么?
12、JSP 有哪些內置對象?
13、JSP 有哪些基本動作?
14、JSP 有哪幾種作用域?
15、JSP 有哪些常用指令?
16、如何實現隱藏的表單域?
17、AJAX 應用和傳統 Web 應用有什么不同?
18、怎么優化 Web 前端的性能?
19、什么是 MVC?分別代表什么?
20、攔截器和過濾器的區別?
21、Cookie 和 Session 的區別?
22、什么是跨域?有哪些解決方案?


獲取所有面試題答案:

關注微信公眾號:Java技術棧,在后台回復:面試。

掃碼關注


Spring

1、Spring 框架是什么?
2、Spring 常用的注解有哪些?
3、Spring 框架的好處有哪些?
4、Spring 由哪些主要模塊組成?
5、Spring IOC 容器是什么?
6、Spring IOC 的好處有哪些?
7、BeanFactory 和 ApplicationContext 的區別?
8、Spring 依賴注入是什么?
9、Spring 依賴注入有哪幾種方式?
10、Spring bean 支持哪幾種作用域?
11、Spring bean 生命周期是怎樣的?
12、Spring bean 為什么默認為單例?
13、Spring bean 是線程安全的嗎?
14、Spring 這幾個注解的區別?
15、Spring @Autowired 注解有什么用?
16、Spring @Required 注解有什么用?
17、Spring @Qualifier 注解有什么用?
18、Spring 怎么注入 Java 集合類型?
19、Spring 裝配是指什么?
20、Spring 自動裝配有哪些方式?
21、Spring 自動裝配有什么局限性?
22、Spring AOP 是什么?
23、Spring AOP 有什么作用?
24、Spring AOP 有哪些實現方式?
25、Spring AOP 和 AspectJ AOP 的區別?
26、Spring 支持哪些事務管理類型?
27、Spring 框架用到了哪些設計模式?
28、Spring MVC 框架有什么用?
29、Spring MVC DispatcherServlet 的工作流程?
30、Spring MVC 常用的注解有哪些?
31、Spring MVC @RequestMapping 有啥用?

Spring Boot

1、Spring Boot 是什么?
2、Spring Boot 有哪些優缺點?
3、Spring Boot 框架的核心思想是什么?
4、Spring Boot 有哪些核心模塊?
5、Spring Boot 的核心配置文件有哪些?
6、Spring Boot 的配置文件有哪幾種格式?
7、Spring Boot 的核心注解是哪個?
8、SpringBootApplication 注解包含哪幾個注解?
9、Spring Boot 最核心的注解有哪些?
10、Spring Boot 怎么根據指定條件注冊 bean?
11、Spring Boot 有哪些條件注解?
12、Spring Boot 有哪兩種方式集成?
13、Spring Boot 需要獨立的容器運行嗎?
14、Spring Boot 中的默認內嵌容器是?
15、Spring Boot 中的內嵌容器可以替換成別的么?
16、Spring Boot 自動配置原理是什么?
17、Spring Boot 開啟自動配置的注解是?
18、Spring Boot 自動配置的類在哪注冊?
19、Spring Boot 自動配置報告怎么查看?
20、Spring Boot 怎么排除某些自動配置?
21、Spring Boot 怎么開啟和關閉自動配置?
22、Spring Boot 的目錄結構是怎樣的?
23、Spring Boot 中的 Starters 是什么?
24、Spring Boot Starters 有什么命名規范?
25、Spring Boot Starters 官方有哪些分類?
26、Spring Boot 怎么自定義一個 Starter?
27、Spring Boot 有哪幾種運行方式?
28、Spring Boot 支持哪些應用打包方式?
29、Spring Boot 應用怎么 Debug 調試?
30、Spring Boot 可以配置隨機端口嗎?
31、Spring Boot 怎么打一個可執行 Jar 包?
32、Spring Boot 支持 https 配置嗎?
33、Spring Boot 怎么注冊 Servlet?
34、Spring Boot Runner 是什么?
35、Spring Boot 支持哪些模板引擎?
36、Spring Boot 支持 Velocity 模板引擎嗎?
37、Spring Boot 怎么做單元測試?
38、Spring Boot 支持哪些日志框架?
39、Spring Boot 有哪幾種熱部署方式?
40、Spring Boot 配置加載順序是怎樣的?
41、Spring Boot 如何定義不同環境配置?
42、Spring Boot 怎么兼容老 Spring 項目?
43、Spring Boot 應用有哪些保護手法?
44、Spring Boot 怎么注冊事件監聽器?
45、Spring Boot 應用如何監控和健康檢查?
46、Spring Boot 怎么解決跨域問題?
47、Spring Boot 2.X 有什么新特性?
48、Spring Boot 怎么定制啟動圖案?
49、Spring Boot 怎么關閉啟動圖案?
50、Spring Boot 的默認編碼是?
51、Spring Boot 怎么指定編碼格式?
52、Spring Boot 應用如何優雅關閉?

Spring Cloud

1、Spring Cloud 是什么?
2、Spring Cloud 和 Spring Boot 的關系?
3、Spring Cloud 有哪些重要的組件?
4、Spring Cloud 和 Dubbo 的區別?
5、Spring Cloud 版本號怎么理解?
6、Spring Cloud Eureka 保護機制是什么?
7、Spring Cloud 注冊中心有哪些實現方案?
8、Spring Cloud 配置中心有哪些實現方案?
9、Spring Cloud 如何保證微服務調用安全性?
10、Spring Cloud 中的 Ribbon 是什么?
11、Spring Cloud 中的 Feign 是什么?
12、Spring Cloud Feign 和 ribbon 的區別?
13、Spring Cloud Gateway VS Zuul 怎么選?
14、Spring Cloud for Alibaba 是什么?

Dubbo

1、Dubbo 是什么框架?
2、為什么要用 Dubbo?
3、Dubbo 里面有哪幾種節點角色?
4、Dubbo 停止維護了嗎?
5、Dubbo 必須依賴的包有哪些?
6、Dubbo 支持哪些注冊中心?推薦哪種?
7、Dubbo 內置了哪幾種服務容器?
8、Dubbo 需要 Web 容器嗎?
9、Dubbo 的服務注冊和發現流程?
10、Dubbo 服務暴露的過程?
11、Dubbo 有哪幾種配置方式?
12、Dubbo 核心的配置有哪些?
13、Provider 可以配置 Consumer 哪些屬性?
14、Dubbo 啟動時依賴的服務不可用會怎樣?
15、Dubbo 都支持什么協議,推薦用哪種?
16、Dubbo 支持什么通信框架?默認哪種?
17、Dubbo 支持的序列化框架有哪些?
18、Dubbo 有哪些集群容錯方案,默認哪種?
19、Dubbo 有哪些負載均衡策略,默認哪種?
20、有多個同名服務時,如果連接指定的服務?
21、Dubbo 支持服務多協議嗎?
22、Dubbo 服務上線怎么兼容舊版本?
23、Dubbo 一個服務接口有多種實現怎么區分?
24、Dubbo 可以對結果進行緩存嗎?
25、Dubbo 服務之間的調用是阻塞的嗎?
26、Dubbo 支持分布式事務嗎?
27、Dubbo telnet 命令能做什么?
28、Dubbo 支持服務降級嗎?
29、Dubbo 如何優雅停機?
30、Dubbo 服務提供者失效自動下線是什么原理?
31、Dubbo 服務調用鏈過長如何解決?
32、Duboo 服務讀寫容錯策略怎么做?
33、Dubbo 的管理控制台能做什么?
34、Dubbo 能集成 Spring Boot 嗎?
35、Dubbo 使用過程中都遇到了些什么問題?
36、Dubbo 的源碼你有讀過嗎?
37、Dubbo 和 Spring Cloud 哪個好?
38、Dubbo 你們的推薦用法有哪些?
39、你怎么理解 Dubbo SPI?
40、Dubbo 之外,你還了解別的 RPC 框架嗎?
41、Dubbox 是什么?和 Dubbo 有啥區別?

MySQL(數據庫)

1、主鍵、外鍵有什么區別?
2、怎么理解三范式和反范式?
3、范式和反范式的優缺點?
4、什么是事務?
5、事務有哪幾個特性?
6、什么是臟讀、幻讀、不可重復讀?
7、MySQL 有哪些事務隔離級別?
8、MySQL 默認的事務隔離級別是?
9、什么是索引?
10、索引有什么用?
11、索引為什么能提高查詢效率?
12、索引的設計有哪些原則?
13、什么情況下應不建或少建索引?
14、MySQL 索引的種類有哪些?
15、MySQL 索引最左匹配原則怎么理解?
16、MySQL 數據庫引擎怎么選擇?
17、MySQL 默認數據庫引擎是什么?
18、MySQL 引擎 MyISAM 和 InnoDB 的區別?
19、char 和 varchar 的區別?
20、MySQL 的 drop、delete、truncate區別?
21、MySQL 怎么實現分頁查詢?
22、MySQL 的高可用方案有哪些?
23、如何分析一條 SQL 語句的執行計划和性能?
24、MySQL 查詢優化有哪些方法?
25、MySQL 為什么不建議默認 null 值?
26、MySQL 為什么盡量選擇最小數據類型?
27、怎么理解數據庫中的樂觀鎖和悲觀鎖?
28、MySQL 中的 MVCC 是指什么?
29、MySQL InnoDB 的 MVCC 實現機制?
30、MySQL 中的 MVCC 支持哪些事務隔離級別?
31、MySQL 支持哪三種級別的鎖?
32、MySQL InnoDB 支持什么鎖?
33、MySQL 中的表鎖有哪些?
34、MySQL 中的行鎖有哪些?
35、MySQL 中的意向鎖有什么用?
36、MySQL 中的意向鎖的分類?
37、MySQL 中的意向鎖是表鎖還是行鎖?
38、MySQL 中的自增鎖有什么用?
39、MySQL 行鎖是鎖的是什么?
40、MySQL 行鎖實現的幾種算法?
41、MySQL 什么情況會發生死鎖?
42、MySQL 死鎖怎么排查?
43、MySQL 如何解決死鎖?
44、MySQL 如何避免死鎖?
45、MySQL 和 MariaDB 的區別?
46、MySQL 日志 undo 和 redo 的區別?
47、什么是表分區?
48、表分區有什么好處?
49、表分區與分表的區別?
50、MySQL 支持的分區類型有哪些?
51、MySQL 分區表有哪些限制因素?
52、MySQL 為什么要分庫分表?
53、MySQL 分庫分表怎么做?
54、MySQL 分庫分表工具有哪些?
55、MySQL 分庫分表會產生哪些問題?
56、MySQL 批量插入,如何不插入重復數據?

Redis(緩存)

1、Redis 是什么?
2、Redis 有哪些應用場景?
3、Redis 有什么優勢?
4、Redis 為什么這么快?
5、Redis 主要消耗什么物理資源?
6、Redis 到底是單線程還是多線程?
7、Redis 和 Memcache 有什么區別?
8、Redis 支持哪些數據類型?
9、Redis 默認支持多少個數據庫?怎么修改?
10、Redis 最大 key 大小?
11、Redis String 值最大存儲多少?
12、Redis 事務有什么用?
13、Redis 事務相關的命令有哪幾個?
14、Redis 持久化有什么用?
15、Redis 有哪幾種持久化方式?
16、Redis 持久化方式如何選擇?
17、Redis 內存滿了怎么辦?
18、Redis 有哪些淘汰策略?
19、Redis 如何提高多核 CPU 利用率?
20、Redis 如何實現大量數據插入?
21、Redis 的回收進程如何工作的?
22、Redis 中的管道有什么用?
23、Redis 有哪些高可用方案?
24、Redis 集群如何選擇數據庫?
25、Redis 哈希槽怎么理解?
26、Redis 支持的 Java 客戶端有哪些?
27、Redisson 是什么框架?
28、Redis 和 Redisson 有什么關系?
29、Jedis 和 Redisson 對比有什么優缺點?
30、Redis 為什么不提供 Windows 版本?
31、Redis 如何設置密碼訪問?
32、Redis 如何分析慢查詢操作?
33、什么是緩存預熱和熱備?
34、什么是緩存雪崩,如何解決?
35、什么是緩存穿透,如何解決?
36、什么是緩存擊穿,如何解決?
37、什么是緩存抖動,如何解決?
38、什么是緩存無底洞現象,如何解決?
39、Redis 和數據庫雙寫一致性問題如何解決?
40、Redis 有哪些危險命令?如何防范?
41、Redis 如何統計獨立用戶訪問量?

Zookeeper

1、ZooKeeper 是什么?
2、ZooKeeper 有哪些特性?
3、ZooKeeper 有哪些應用場景?
4、Zookeeper 支持哪些數據節點類型?
5、Zookeeper 常用的命令有哪些?
6、Zookeeper 服務器有哪幾種角色?
7、Zookeeper 服務器有哪幾種工作狀態?
8、Zookeeper 支持哪些 Java 客戶端?
9、ZooKeeper 有幾種部署模式?
10、Zookeeper 集群最少要幾台機器,為什么?
11、Zookeeper 集群支持動態添加機器嗎?
12、ZooKeeper 是如何實現分布式事務的?
13、ZooKeeper 是如何實現分布式鎖的?
14、Zookeeper 中的文件系統怎么理解?
15、Zookeeper 和 Chubby 的區別?
16、怎么理解 ZAB 協議?
17、ZAB 和 Paxos 算法的聯系與區別?

分布式

1、什么是 SOA?
2、SOA 和微服務架構有什么區別?
3、什么是 CAP 原則?
4、什么是 BASE 原則?
5、什么是 RMI?
6、什么是 RPC?
7、RMI 和 RPC 有什么區別?
8、分布式系統下會遇到哪些問題?
9、分布式 Session 共享怎么實現?
10、分布式唯一 ID 怎么實現?
11、什么是分布式事務?
12、分布式事務的解決方案有哪些?
13、什么是微服務?
14、微服務架構有什么優勢?
15、微服務架構有什么缺點?
16、什么是服務治理?
17、什么是服務降級?
18、服務降級的方案有哪些?
19、什么是服務雪崩?
20、什么是服務熔斷?

MyBatis

1、MyBatis 是什么框架?
2、MyBatis 和 ORM 的區別?
3、MyBatis 為什么是半自動 ORM 映射?
4、MyBatis 框架的應用場景?
5、MyBatis 有哪些優點?
6、MyBatis 有哪些缺點?
7、MyBatis 和 Hibernate 的區別?
8、MyBatis 和 JPA 的區別?
9、MyBatis 有哪幾種 SQL 編寫形式?
10、MyBatis 支持哪些傳參數的方法?
11、MyBatis 的 $ 和 # 傳參的區別?
12、MyBatis 可以映射到枚舉類嗎?
13、MyBatis 怎么封裝動態 SQL?
14、Mybatis trim 標簽有什么用?
15、MyBatis 怎么實現分頁?
16、MyBatis 流式查詢有什么用?
17、MyBatis 模糊查詢 like 語句該怎么寫?
18、MyBatis 配置文件中的 SQL id 是否能重復?
19、MyBatis 如何防止 SQL 注入?
20、MyBatis 如何獲取自動生成的主鍵id?
21、MyBatis 使用了哪些設計模式?
22、MyBatis 中的緩存機制有啥用?
23、MyBatis 一級緩存和二級緩存的區別?
24、MyBatis-Plus 是什么框架?

消息隊列

1、消息隊列有什么用?
2、消息隊列有哪些應用場景?
3、消息隊列有什么優缺點?
4、消息隊列怎么選型?
5、有了多線程,為什么還要消息隊列?
6、消息隊列和多線程應該怎么選擇呢?
7、使用消息隊列會遇到哪些問題?
8、消息隊列如何處理消息重復消費問題?
9、消息隊列為什么會產生消息丟失?
10、消息隊列如何解決消息丟失問題?
11、消息隊列如何保證消息順序消費?
12、消息延遲推送有哪些應用場景?
13、什么是拉模式和推模式?
14、什么是消息持久化?
15、消息持久化有什么缺點?
16、什么是 JMS?
17、什么是 RabbitMQ?
18、RabbitMQ 有哪些優點?
19、RabbitMQ 有哪些重要的組件?
20、RabbitMQ 有哪些重要的角色?
21、RabbitMQ 交換器類型有哪些?
22、RabbitMQ 消息基於什么傳輸?
23、RabbitMQ 怎么避免消息丟失?
24、RabbitMQ 怎么保證消息的穩定性?
25、RabbitMQ 支持事務消息嗎?
26、RabbitMQ 事務消息在什么情況下無效?
27、RabbitMQ 接收到消息之后必須消費嗎?
28、RabbitMQ 如何確保每個消息能被消費?
29、RabbitMQ 消息持久化的條件?
30、RabbitMQ 中的死信隊列是什么?
31、RabbitMQ 隊列中的消息是否有數量限制?
32、RabbitMQ 怎么實現消息延遲推送?

Linux

1、Linux 是什么?
2、Linux 和 Unix 的區別?
3、Linux 系統有哪些優勢?
4、Linux 怎么查看內核版本?
5、RedHat、CentOS、Ubuntu 有什么區別?
6、Linux 和 Windows 正反斜杠的區別?
7、Linux 環境變量配置有哪幾種方式?
8、Linux 安裝軟件有哪幾種方式?
9、Linux 普通用戶怎么以管理員身份執行指令?
10、Linux 的 root 和 home 目錄有什么不同?
11、Linux 系統 root 和普通用戶的區別?
12、Linux 怎么區分 root 和普通用戶?
13、Linux 怎么切換用戶?
14、Linux 中的 bash 是什么?
15、Linux 中的 Shell 是什么?
16、Linux 怎么顯示目錄下的文件?
17、Linux 中 ll 和 ls 命令的區別?
18、Linux 怎么創建文件?
19、Linux 怎么創建目錄?
20、Linux 怎么切換目錄?
21、Linux 怎么切換到上 N 級目錄?
22、Linux 怎么切換到之前所在的目錄?
23、Linux 怎么切換到當前用戶主目錄?
24、Linux 怎么查看當前目錄所在路徑?
25、Linux 下的權限有哪幾種?
26、Linux 文件調用權限分為哪 3 級?
27、Linux 怎么修改文件權限?
28、Linux 怎么修改文件所有者和所屬組?
29、Linux 怎么查看磁盤的使用情況?
30、Linux 怎么查看內存的使用情況?
31、Linux 怎么查看資源消耗最多的進程?
32、Linux 怎么看端口被哪個進程占用?
33、Linux 怎么查找某個進程?
34、Linux 怎么結束某個進程?
35、Linux 怎么清屏?
36、Linux 控制台怎么設置超時自動注銷?
37、Linux vim 和 vi 命令的區別?
38、Linux vim 命令怎么使用?
39、Linux 軟鏈接和硬鏈接區別?
40、Linux 怎么創建軟、硬鏈接?
41、Linux 中的零拷貝是指什么?
42、Linux 下 select,poll,epoll 的區別?


獲取所有面試題答案:

關注微信公眾號:Java技術棧,在后台回復:面試。

掃碼關注

2020 就開始整理了,花了幾個月時間,花了不少精力啊,希望能幫助到大家。

本題庫還會不斷更新,涉及的類目還會更廣,預計會更新上 1000 道 Java 開發會遇到的主流面試題,關注微信公眾號:Java技術棧,回復:面試,可以獲取最新版。

近期熱文推薦:

1.Java 15 正式發布, 14 個新特性,刷新你的認知!!

2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!

3.我用 Java 8 寫了一段邏輯,同事直呼看不懂,你試試看。。

4.吊打 Tomcat ,Undertow 性能很炸!!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM