棧長整理了 2021 年最新、最全的 Java 面試題,題目涉及 Java 基礎、集合、多線程、IO、分佈式、Spring全家桶、MyBatis、Dubbo、緩存、消息隊列、Linux…等等。前端
題庫共 600+ 道,帶所有答案,很是齊全!java
一、面向對象編程有哪些特徵?
二、JDK 與 JRE 的區別是什麼?
三、Java 有哪幾種基本數據類型?
四、== 和 equals 比較有什麼區別?
五、public,private,protected,默認的區別?
六、this 和 super 有什麼區別?
七、short s1 = 1; s1 += 1;有錯嗎?
八、short s1 = 1; s1 = s1 + 1;有錯嗎?
九、float n = 1.8 有錯嗎?
十、i++ 和 ++i 的區別?
十一、while 和 do while 有啥區別?
十二、如何跳出 Java 中的循環?
1三、如何跳出 Java 中的多層嵌套循環?
1四、& 和 && 的區別?
1五、2 * 8 最有效率的計算方法是什麼?
1六、數組有沒有 length 方法?String 呢?
1七、怎麼理解值傳遞和引用傳遞?
1八、Java 究竟是值傳遞仍是引用傳遞?
1九、一個 ".java" 源文件的類有什麼限制?
20、Java 中的註釋有哪些寫法?
2一、static 關鍵字有什麼用?
2二、static 變量和普通變量的區別?
2三、static 能夠修飾局部變量麼?
2四、final 關鍵字有哪些用法?
2五、final、finally、finalize 有什麼區別?
2六、void 和 Void 有什麼區別?
2七、爲何 byte 取值範圍爲 -128~127?
2八、char 類型能夠存儲中文漢字嗎?
2九、重載和重寫有什麼區別?
30、構造器能夠被重寫和重載嗎?
3一、main 方法能夠被重寫和重載嗎?
3二、私有方法能被重載或者重寫嗎?
3三、Java 中的斷言(assert)是什麼?
3四、Java 異常有哪些分類?
3五、Error 和 Exception 有什麼區別?
3六、Java 中常見的異常有哪些?
3七、Java 中常見的運行時異常有哪些?
3八、運行時異常與受檢查異常有什麼區別?
3九、何時會發生空指針異常?
40、你知道有哪些避免空指針的方法?
4一、throw 和 throws 的區別?
4二、try-catch-finally 中哪一個部分能夠省略?
4三、try 裏面 return,finally還會執行嗎?
4四、int 和 Integer 有什麼區別?
4五、什麼是包裝類型?有什麼用?
4六、什麼是自動裝廂、拆廂?
4七、你怎麼理解 Java 中的強制類型轉換?
4八、你怎麼理解 Java 中的自動類型轉換?
4九、你怎麼理解 Java 中的類型提高?
50、switch 是否能用在 long 上?
5一、switch 是否能用在 String 上?
5二、switch case 支持哪幾種數據類型?
5三、String 屬於基礎的數據類型嗎?
5四、String 類的經常使用方法都有那些?
5五、String 的底層實現是怎樣的?
5六、String 是可變的嗎?爲何?
5七、String 類能夠被繼承嗎?
5八、String 真的是不可變的嗎?
5九、String 字符串如何進行反轉?
60、String 字符串如何實現編碼轉換?
6一、String 有沒有長度限制?是多少?
6二、爲何不能用 + 拼接字符串?
6三、StringBuffer 和 StringBuilder 的區別?
6四、StringJoiner 有什麼用?
6五、Java 全部類的祖先類是哪一個?
6六、Object 類有哪些經常使用的方法?
6七、普通類和抽象類有什麼區別?
6八、靜態內部類和普通內部類有什麼區別?
6九、靜態方法能夠直接調用非靜態方法嗎?
70、靜態變量和實例變量有什麼區別?
7一、內部類能夠訪問其外部類的成員嗎?
7二、接口和抽象類有什麼區別?
7三、接口是否能夠繼承接口?
7四、接口裏面能夠寫方法實現嗎?
7五、抽象類必需要有抽象方法嗎?
7六、抽象類能使用 final 修飾嗎?
7七、抽象類是否能夠繼承具體類?
7八、抽象類是否能夠實現接口?
7九、怎麼查看一個 Java 類的字節碼?
80、Java 中的 UUID 是什麼?
8一、Java 類初始化順序是怎樣的?
8二、爲何成員變量命名不建議用 isXXX?
8三、hashCode 有什麼用?
8四、hashCode 和 identityHashCode 的區別?
8五、什麼是 hash 衝突?
8六、equals 和 hashCode 的區別和聯繫?
8七、兩個對象 equals 相等, hashCode 也相等麼?
8八、兩個對象 hashCode 相等,equals 也相等麼?
8九、爲何重寫 equals 就要重寫 hashCode 方法?
90、Java 經常使用的元註解有哪些?
9一、Java 泛型中的 T、R、K、V、E 分別指什麼?
9二、Java 金額計算怎麼避免精通丟失?
9三、Java 語法糖是什麼意思?
9四、transient 關鍵字有什麼用?
9五、如何實現對象克隆?
9六、對象克隆淺拷貝和深拷貝的區別?
9七、Java 反射機制有什麼用?
9八、Java 反射機制的優缺點?
9九、Java 反射機制 Class 類有哪些經常使用方法?
100、Java 反射能夠訪問私有方法嗎?
10一、Java 反射能夠訪問私有變量嗎?
10二、Class.forName 和 ClassLoader 的區別?
10三、什麼是宏變量和宏替換?
10四、什麼是逃逸分析?
10五、什麼是僞共享?有什麼解決方案?
10六、Java 有沒有 goto 關鍵字?
10七、Java 中有沒有指針的概念?
10八、Java 中的 classpath 環境變量做用?
10九、Math.round(1.5) 等於多少?
1十、Math.round(-1.5) 等於多少?
1十一、Java 8 都新增了哪些新特性?
1十二、Java 8 中的 Lambda 表達式有啥用?
11三、Java 8 中的 Optional 類有什麼用?
11四、Java 8 中的 Stream 有啥用?
11五、Java 8 中的@Repeatable 註解有什麼用?
11六、Java 8 中的方法引用是指什麼?
11七、Java 8 中的函數式編程怎麼用?
11八、怎麼建立一個 Stream 流?
11九、Oracle JDK 和 OpenJDK 有啥區別?mysql
一、說說常見的集合有哪些?
二、哪些集合類可對元素的隨機訪問?
三、Comparable 和 Comparator 接口的區別?
四、Collection 和 Collections 的區別?
五、Enumeration 和 Iterator 接口的區別?
六、集合使用泛型有什麼優勢?
七、List、Set、Map 之間的區別是什麼?
八、爲何 Map 接口不繼承 Collection 接口?
九、經常使用的線程安全的 Map 有哪些?
十、HashMap 與 Hashtable 的區別?
十一、HashMap 和 TreeMap 怎麼選?
十二、HashMap 的數據結構是什麼?
1三、HashMap 在 JDK 8 中有哪些改變?
1四、HashMap 的 put 方法邏輯?
1五、HashMap 的 get 方法邏輯?
1六、HashMap 是線程安全的嗎?
1七、HashMap 是怎麼解決 hash 衝突的?
1八、HashMap 是怎麼擴容的?
1九、HashMap 如何實現同步?
20、HashMap 中的負載因子是什麼?
2一、Hashtable 爲何不叫 HashTable?
2二、ConcurrentHashMap 的數據結構?
2三、ArrayList 是線程安全的麼?
2四、經常使用的線程安全的 List 集合有哪些?
2五、循環刪除 List 集合可能會發生什麼異常?
2六、ArrayList 和 LinkedList 的區別?
2七、ArrayList 和 Vector 的區別?
2八、什麼是 CopyOnWriteArrayList?
2九、什麼是 fail-safe?
30、什麼是 fail-fast?
3一、fail-fast 與 fail-safe 有什麼區別?
3二、HashSet 的底層實現原理是什麼?
3三、怎麼確保一個集合不能被修改?linux
一、Java 爲何能一次編寫,到處運行?
二、JVM 是什麼?
三、HotSpot 是什麼?
四、JVM 內存區域分類哪些?
五、堆和棧區別是什麼?
六、JVM 哪塊內存區別不會發生內存溢出?
七、什麼狀況下會發生棧內存溢出?
八、對象都是在堆上分配的嗎?
九、你怎麼理解強、軟、弱、虛引用?
十、經常使用的 JVM 參數有哪些?
十一、Java 8 中的內存結構有什麼變化?
十二、Java 8 中的永久代爲何被移除了?
1三、什麼是類加載器?
1四、類加載器的分類及做用?
1五、什麼是雙親委派模型?
1六、爲何要打破雙親委派模型?
1七、能夠自定義一個 java.lang.String 嗎?
1八、什麼是 JVM 內存模型?
1九、JVM 內存模型和 JVM 內存結構的區別?
20、什麼是指令重排序?
2一、內存屏障是什麼?
2二、什麼是 Happens-Before 原則?
2三、GC 是什麼?爲何須要 GC?
2四、什麼是 MinorGC 和 FullGC?
2五、一次完整的 GC 流程是怎樣的?
2六、JVM 如何判斷一個對象可被回收?
2七、經常使用的垃圾收集器有哪些?
2八、經常使用的垃圾回收算法有哪些?
2九、什麼是內存泄漏?
30、爲何會發生內存泄漏?
3一、如何防止內存泄漏?
3二、什麼是直接內存?
3三、直接內存有什麼用?
3四、怎樣訪問直接內存?
3五、經常使用的 JVM 調優命令有哪些?
3六、經常使用的 JVM 問題定位工具備哪些?
3七、經常使用的主流 JVM 虛擬機都有哪些?web
一、進程和線程的區別?
二、什麼是原子性、可見性、有序性?
三、爲何要使用多線程?
四、建立線程有哪幾種方式?
五、什麼是守護線程?
六、線程的狀態有哪幾種?怎麼流轉的?
七、線程的優先級有什麼用?
八、咱們常說的 JUC 是指什麼?
九、i++ 是線程安全的嗎?
十、join 方法有什麼用?什麼原理?
十一、如何讓一個線程休眠?
十二、啓動一個線程是用 start 仍是 run 方法?
1三、start 和 run 方法有什麼區別?
1四、sleep 和 wait 方法有什麼區別?
1五、Thread.yield 方法有什麼用?
1六、yield 和 sleep 有什麼區別?
1七、怎麼理解 Java 中的線程中斷?
1八、你怎麼理解多線程分組?
1九、你怎麼理解 wait、notify、notifyAll?
20、同步和異步的區別?
2一、什麼是死鎖?
2二、怎麼避免死鎖?
2三、什麼是活鎖?
2四、什麼是無鎖?
2五、什麼是線程飢餓?
2六、什麼是 CAS?
2七、阻塞和非阻塞的區別?
2八、併發和並行的區別?
2九、爲何不推薦使用 stop 中止線程?
30、如何優雅地終止一個線程?
3一、Synchronized 同步鎖有哪幾種用法?
3二、什麼是重入鎖(ReentrantLock)?
3三、Synchronized 與 ReentrantLock 的區別?
3四、synchronized 鎖的是什麼?
3五、什麼是讀寫鎖?
3六、公平鎖和非公平鎖的區別?
3七、有哪些鎖優化的方式?
3八、什麼是偏向鎖?
3九、什麼是輕量級鎖?
40、什麼是自旋鎖?
4一、什麼是鎖消除?
4二、什麼是鎖粗化?
4三、什麼是重量級鎖?
4四、什麼是線程池?
4五、使用線程池有什麼好處?
4六、建立一個線程池有哪些核心參數?
4七、線程池的工做流程是怎樣的?
4八、Java 裏面有哪些內置的線程池?
4九、爲何阿里不讓用 Executors 建立線程池?
50、線程池的拒絕策略有哪幾種?
5一、如何提交一個線程到線程池?
5二、線程池 submit 和 execute 有什麼區別?
5三、如何查看線程池的運行狀態?
5四、如何設置線程池的大小?
5五、如何關閉線程池?
5六、AQS 是什麼?
5七、AQS 的底層原理是什麼?
5八、Java 中的 Fork Join 框架有什麼用?
5九、ThreadLocal 有什麼用?
60、ThreadLocal 有什麼反作用?
6一、volatile 關鍵字有什麼用?
6二、volatile 有哪些應用場景?
6三、CyclicBarrier 有什麼用?
6四、CountDownLatch 有什麼用?
6五、CountDownLatch 與 CyclicBarrier 的區別?
6六、Semaphore 有什麼用?
6七、Exchanger 有什麼用?
6八、LockSupport 有什麼用?
6九、Java 中原子操做的類有哪些?
70、什麼是 ABA 問題?怎麼解決?
7一、Java 併發容器,你知道幾個?
7二、什麼是阻塞隊列?
7三、阻塞隊列有哪些經常使用的應用場景?
7四、Java 中的阻塞的隊列有哪些?
7五、什麼是冪等性?面試
一、什麼是 IO?
二、經常使用的 IO 類有哪些?
三、你怎麼理解 IO、BIO、NIO、AIO?
四、什麼是比特(Bit)、字節(Byte)、字符(Char)?
五、Java 有哪幾種類型的流?
六、字節流和字符流的區別?
七、Java 序列化是什麼?
八、怎麼序列化一個對象?
九、Java 有哪兩種序列化方式?
十、怎麼控制類中的某些變量不被序列化?
十一、靜態變量能不能被序列化?
十二、OSI 的七層模型都有哪些?
1三、tcp 和 udp 協議的區別?
1四、tcp 爲何要三次握手,兩次不行嗎?redis
一、http 和 https 的區別?
二、get 和 post 的區別?
三、forward 和 redirect 的區別?
四、Servlet 是什麼?
五、Servlet 的生命週期是怎樣的?
六、Servlet 有哪些核心的方法?
七、Servlet 是線程安全的麼?
八、Servlet 支持異步處理嗎?
九、Servlet 是單例仍是多例?
十、Servlet 和 JSP 有什麼區別和聯繫?
十一、JSP 是什麼?
十二、JSP 有哪些內置對象?
1三、JSP 有哪些基本動做?
1四、JSP 有哪幾種做用域?
1五、JSP 有哪些經常使用指令?
1六、如何實現隱藏的表單域?
1七、AJAX 應用和傳統 Web 應用有什麼不一樣?
1八、怎麼優化 Web 前端的性能?
1九、什麼是 MVC?分別表明什麼?
20、攔截器和過濾器的區別?
2一、Cookie 和 Session 的區別?
2二、什麼是跨域?有哪些解決方案?算法
獲取全部面試題答案:spring
關注微信公衆號:Java技術棧,在後臺回覆:面試。sql
一、Spring 框架是什麼?
二、Spring 經常使用的註解有哪些?
三、Spring 框架的好處有哪些?
四、Spring 由哪些主要模塊組成?
五、Spring IOC 容器是什麼?
六、Spring IOC 的好處有哪些?
七、BeanFactory 和 ApplicationContext 的區別?
八、Spring 依賴注入是什麼?
九、Spring 依賴注入有哪幾種方式?
十、Spring bean 支持哪幾種做用域?
十一、Spring bean 生命週期是怎樣的?
十二、Spring bean 爲何默認爲單例?
1三、Spring bean 是線程安全的嗎?
1四、Spring 這幾個註解的區別?
1五、Spring @Autowired 註解有什麼用?
1六、Spring @Required 註解有什麼用?
1七、Spring @Qualifier 註解有什麼用?
1八、Spring 怎麼注入 Java 集合類型?
1九、Spring 裝配是指什麼?
20、Spring 自動裝配有哪些方式?
2一、Spring 自動裝配有什麼侷限性?
2二、Spring AOP 是什麼?
2三、Spring AOP 有什麼做用?
2四、Spring AOP 有哪些實現方式?
2五、Spring AOP 和 AspectJ AOP 的區別?
2六、Spring 支持哪些事務管理類型?
2七、Spring 框架用到了哪些設計模式?
2八、Spring MVC 框架有什麼用?
2九、Spring MVC DispatcherServlet 的工做流程?
30、Spring MVC 經常使用的註解有哪些?
3一、Spring MVC @RequestMapping 有啥用?
一、Spring Boot 是什麼?
二、Spring Boot 有哪些優缺點?
三、Spring Boot 框架的核心思想是什麼?
四、Spring Boot 有哪些核心模塊?
五、Spring Boot 的核心配置文件有哪些?
六、Spring Boot 的配置文件有哪幾種格式?
七、Spring Boot 的核心註解是哪一個?
八、SpringBootApplication 註解包含哪幾個註解?
九、Spring Boot 最核心的註解有哪些?
十、Spring Boot 怎麼根據指定條件註冊 bean?
十一、Spring Boot 有哪些條件註解?
十二、Spring Boot 有哪兩種方式集成?
1三、Spring Boot 須要獨立的容器運行嗎?
1四、Spring Boot 中的默認內嵌容器是?
1五、Spring Boot 中的內嵌容器能夠替換成別的麼?
1六、Spring Boot 自動配置原理是什麼?
1七、Spring Boot 開啓自動配置的註解是?
1八、Spring Boot 自動配置的類在哪註冊?
1九、Spring Boot 自動配置報告怎麼查看?
20、Spring Boot 怎麼排除某些自動配置?
2一、Spring Boot 怎麼開啓和關閉自動配置?
2二、Spring Boot 的目錄結構是怎樣的?
2三、Spring Boot 中的 Starters 是什麼?
2四、Spring Boot Starters 有什麼命名規範?
2五、Spring Boot Starters 官方有哪些分類?
2六、Spring Boot 怎麼自定義一個 Starter?
2七、Spring Boot 有哪幾種運行方式?
2八、Spring Boot 支持哪些應用打包方式?
2九、Spring Boot 應用怎麼 Debug 調試?
30、Spring Boot 能夠配置隨機端口嗎?
3一、Spring Boot 怎麼打一個可執行 Jar 包?
3二、Spring Boot 支持 https 配置嗎?
3三、Spring Boot 怎麼註冊 Servlet?
3四、Spring Boot Runner 是什麼?
3五、Spring Boot 支持哪些模板引擎?
3六、Spring Boot 支持 Velocity 模板引擎嗎?
3七、Spring Boot 怎麼作單元測試?
3八、Spring Boot 支持哪些日誌框架?
3九、Spring Boot 有哪幾種熱部署方式?
40、Spring Boot 配置加載順序是怎樣的?
4一、Spring Boot 如何定義不一樣環境配置?
4二、Spring Boot 怎麼兼容老 Spring 項目?
4三、Spring Boot 應用有哪些保護手法?
4四、Spring Boot 怎麼註冊事件監聽器?
4五、Spring Boot 應用如何監控和健康檢查?
4六、Spring Boot 怎麼解決跨域問題?
4七、Spring Boot 2.X 有什麼新特性?
4八、Spring Boot 怎麼定製啓動圖案?
4九、Spring Boot 怎麼關閉啓動圖案?
50、Spring Boot 的默認編碼是?
5一、Spring Boot 怎麼指定編碼格式?
5二、Spring Boot 應用如何優雅關閉?
一、Spring Cloud 是什麼?
二、Spring Cloud 和 Spring Boot 的關係?
三、Spring Cloud 有哪些重要的組件?
四、Spring Cloud 和 Dubbo 的區別?
五、Spring Cloud 版本號怎麼理解?
六、Spring Cloud Eureka 保護機制是什麼?
七、Spring Cloud 註冊中心有哪些實現方案?
八、Spring Cloud 配置中心有哪些實現方案?
九、Spring Cloud 如何保證微服務調用安全性?
十、Spring Cloud 中的 Ribbon 是什麼?
十一、Spring Cloud 中的 Feign 是什麼?
十二、Spring Cloud Feign 和 ribbon 的區別?
1三、Spring Cloud Gateway VS Zuul 怎麼選?
1四、Spring Cloud for Alibaba 是什麼?
一、Dubbo 是什麼框架?
二、爲何要用 Dubbo?
三、Dubbo 裏面有哪幾種節點角色?
四、Dubbo 中止維護了嗎?
五、Dubbo 必須依賴的包有哪些?
六、Dubbo 支持哪些註冊中心?推薦哪一種?
七、Dubbo 內置了哪幾種服務容器?
八、Dubbo 須要 Web 容器嗎?
九、Dubbo 的服務註冊和發現流程?
十、Dubbo 服務暴露的過程?
十一、Dubbo 有哪幾種配置方式?
十二、Dubbo 核心的配置有哪些?
1三、Provider 能夠配置 Consumer 哪些屬性?
1四、Dubbo 啓動時依賴的服務不可用會怎樣?
1五、Dubbo 都支持什麼協議,推薦用哪一種?
1六、Dubbo 支持什麼通訊框架?默認哪一種?
1七、Dubbo 支持的序列化框架有哪些?
1八、Dubbo 有哪些集羣容錯方案,默認哪一種?
1九、Dubbo 有哪些負載均衡策略,默認哪一種?
20、有多個同名服務時,若是鏈接指定的服務?
2一、Dubbo 支持服務多協議嗎?
2二、Dubbo 服務上線怎麼兼容舊版本?
2三、Dubbo 一個服務接口有多種實現怎麼區分?
2四、Dubbo 能夠對結果進行緩存嗎?
2五、Dubbo 服務之間的調用是阻塞的嗎?
2六、Dubbo 支持分佈式事務嗎?
2七、Dubbo telnet 命令能作什麼?
2八、Dubbo 支持服務降級嗎?
2九、Dubbo 如何優雅停機?
30、Dubbo 服務提供者失效自動下線是什麼原理?
3一、Dubbo 服務調用鏈過長如何解決?
3二、Duboo 服務讀寫容錯策略怎麼作?
3三、Dubbo 的管理控制檯能作什麼?
3四、Dubbo 能集成 Spring Boot 嗎?
3五、Dubbo 使用過程當中都遇到了些什麼問題?
3六、Dubbo 的源碼你有讀過嗎?
3七、Dubbo 和 Spring Cloud 哪一個好?
3八、Dubbo 大家的推薦用法有哪些?
3九、你怎麼理解 Dubbo SPI?
40、Dubbo 以外,你還了解別的 RPC 框架嗎?
4一、Dubbox 是什麼?和 Dubbo 有啥區別?
一、主鍵、外鍵有什麼區別?
二、怎麼理解三範式和反範式?
三、範式和反範式的優缺點?
四、什麼是事務?
五、事務有哪幾個特性?
六、什麼是髒讀、幻讀、不可重複讀?
七、MySQL 有哪些事務隔離級別?
八、MySQL 默認的事務隔離級別是?
九、什麼是索引?
十、索引有什麼用?
十一、索引爲何能提升查詢效率?
十二、索引的設計有哪些原則?
1三、什麼狀況下應不建或少建索引?
1四、MySQL 索引的種類有哪些?
1五、MySQL 索引最左匹配原則怎麼理解?
1六、MySQL 數據庫引擎怎麼選擇?
1七、MySQL 默認數據庫引擎是什麼?
1八、MySQL 引擎 MyISAM 和 InnoDB 的區別?
1九、char 和 varchar 的區別?
20、MySQL 的 drop、delete、truncate區別?
2一、MySQL 怎麼實現分頁查詢?
2二、MySQL 的高可用方案有哪些?
2三、如何分析一條 SQL 語句的執行計劃和性能?
2四、MySQL 查詢優化有哪些方法?
2五、MySQL 爲何不建議默認 null 值?
2六、MySQL 爲何儘可能選擇最小數據類型?
2七、怎麼理解數據庫中的樂觀鎖和悲觀鎖?
2八、MySQL 中的 MVCC 是指什麼?
2九、MySQL InnoDB 的 MVCC 實現機制?
30、MySQL 中的 MVCC 支持哪些事務隔離級別?
3一、MySQL 支持哪三種級別的鎖?
3二、MySQL InnoDB 支持什麼鎖?
3三、MySQL 中的表鎖有哪些?
3四、MySQL 中的行鎖有哪些?
3五、MySQL 中的意向鎖有什麼用?
3六、MySQL 中的意向鎖的分類?
3七、MySQL 中的意向鎖是表鎖仍是行鎖?
3八、MySQL 中的自增鎖有什麼用?
3九、MySQL 行鎖是鎖的是什麼?
40、MySQL 行鎖實現的幾種算法?
4一、MySQL 什麼狀況會發生死鎖?
4二、MySQL 死鎖怎麼排查?
4三、MySQL 如何解決死鎖?
4四、MySQL 如何避免死鎖?
4五、MySQL 和 MariaDB 的區別?
4六、MySQL 日誌 undo 和 redo 的區別?
4七、什麼是表分區?
4八、表分區有什麼好處?
4九、表分區與分表的區別?
50、MySQL 支持的分區類型有哪些?
5一、MySQL 分區表有哪些限制因素?
5二、MySQL 爲何要分庫分表?
5三、MySQL 分庫分表怎麼作?
5四、MySQL 分庫分表工具備哪些?
5五、MySQL 分庫分表會產生哪些問題?
5六、MySQL 批量插入,如何不插入重複數據?
一、Redis 是什麼?
二、Redis 有哪些應用場景?
三、Redis 有什麼優點?
四、Redis 爲何這麼快?
五、Redis 主要消耗什麼物理資源?
六、Redis 究竟是單線程仍是多線程?
七、Redis 和 Memcache 有什麼區別?
八、Redis 支持哪些數據類型?
九、Redis 默認支持多少個數據庫?怎麼修改?
十、Redis 最大 key 大小?
十一、Redis String 值最大存儲多少?
十二、Redis 事務有什麼用?
1三、Redis 事務相關的命令有哪幾個?
1四、Redis 持久化有什麼用?
1五、Redis 有哪幾種持久化方式?
1六、Redis 持久化方式如何選擇?
1七、Redis 內存滿了怎麼辦?
1八、Redis 有哪些淘汰策略?
1九、Redis 如何提升多核 CPU 利用率?
20、Redis 如何實現大量數據插入?
2一、Redis 的回收進程如何工做的?
2二、Redis 中的管道有什麼用?
2三、Redis 有哪些高可用方案?
2四、Redis 集羣如何選擇數據庫?
2五、Redis 哈希槽怎麼理解?
2六、Redis 支持的 Java 客戶端有哪些?
2七、Redisson 是什麼框架?
2八、Redis 和 Redisson 有什麼關係?
2九、Jedis 和 Redisson 對比有什麼優缺點?
30、Redis 爲何不提供 Windows 版本?
3一、Redis 如何設置密碼訪問?
3二、Redis 如何分析慢查詢操做?
3三、什麼是緩存預熱和熱備?
3四、什麼是緩存雪崩,如何解決?
3五、什麼是緩存穿透,如何解決?
3六、什麼是緩存擊穿,如何解決?
3七、什麼是緩存抖動,如何解決?
3八、什麼是緩存無底洞現象,如何解決?
3九、Redis 和數據庫雙寫一致性問題如何解決?
40、Redis 有哪些危險命令?如何防範?
4一、Redis 如何統計獨立用戶訪問量?
一、ZooKeeper 是什麼?
二、ZooKeeper 有哪些特性?
三、ZooKeeper 有哪些應用場景?
四、Zookeeper 支持哪些數據節點類型?
五、Zookeeper 經常使用的命令有哪些?
六、Zookeeper 服務器有哪幾種角色?
七、Zookeeper 服務器有哪幾種工做狀態?
八、Zookeeper 支持哪些 Java 客戶端?
九、ZooKeeper 有幾種部署模式?
十、Zookeeper 集羣最少要幾臺機器,爲何?
十一、Zookeeper 集羣支持動態添加機器嗎?
十二、ZooKeeper 是如何實現分佈式事務的?
1三、ZooKeeper 是如何實現分佈式鎖的?
1四、Zookeeper 中的文件系統怎麼理解?
1五、Zookeeper 和 Chubby 的區別?
1六、怎麼理解 ZAB 協議?
1七、ZAB 和 Paxos 算法的聯繫與區別?
一、什麼是 SOA?
二、SOA 和微服務架構有什麼區別?
三、什麼是 CAP 原則?
四、什麼是 BASE 原則?
五、什麼是 RMI?
六、什麼是 RPC?
七、RMI 和 RPC 有什麼區別?
八、分佈式系統下會遇到哪些問題?
九、分佈式 Session 共享怎麼實現?
十、分佈式惟一 ID 怎麼實現?
十一、什麼是分佈式事務?
十二、分佈式事務的解決方案有哪些?
1三、什麼是微服務?
1四、微服務架構有什麼優點?
1五、微服務架構有什麼缺點?
1六、什麼是服務治理?
1七、什麼是服務降級?
1八、服務降級的方案有哪些?
1九、什麼是服務雪崩?
20、什麼是服務熔斷?
一、MyBatis 是什麼框架?
二、MyBatis 和 ORM 的區別?
三、MyBatis 爲何是半自動 ORM 映射?
四、MyBatis 框架的應用場景?
五、MyBatis 有哪些優勢?
六、MyBatis 有哪些缺點?
七、MyBatis 和 Hibernate 的區別?
八、MyBatis 和 JPA 的區別?
九、MyBatis 有哪幾種 SQL 編寫形式?
十、MyBatis 支持哪些傳參數的方法?
十一、MyBatis 的 $ 和 # 傳參的區別?
十二、MyBatis 能夠映射到枚舉類嗎?
1三、MyBatis 怎麼封裝動態 SQL?
1四、Mybatis trim 標籤有什麼用?
1五、MyBatis 怎麼實現分頁?
1六、MyBatis 流式查詢有什麼用?
1七、MyBatis 模糊查詢 like 語句該怎麼寫?
1八、MyBatis 配置文件中的 SQL id 是否能重複?
1九、MyBatis 如何防止 SQL 注入?
20、MyBatis 如何獲取自動生成的主鍵id?
2一、MyBatis 使用了哪些設計模式?
2二、MyBatis 中的緩存機制有啥用?
2三、MyBatis 一級緩存和二級緩存的區別?
2四、MyBatis-Plus 是什麼框架?
一、消息隊列有什麼用?
二、消息隊列有哪些應用場景?
三、消息隊列有什麼優缺點?
四、消息隊列怎麼選型?
五、有了多線程,爲何還要消息隊列?
六、消息隊列和多線程應該怎麼選擇呢?
七、使用消息隊列會遇到哪些問題?
八、消息隊列如何處理消息重複消費問題?
九、消息隊列爲何會產生消息丟失?
十、消息隊列如何解決消息丟失問題?
十一、消息隊列如何保證消息順序消費?
十二、消息延遲推送有哪些應用場景?
1三、什麼是拉模式和推模式?
1四、什麼是消息持久化?
1五、消息持久化有什麼缺點?
1六、什麼是 JMS?
1七、什麼是 RabbitMQ?
1八、RabbitMQ 有哪些優勢?
1九、RabbitMQ 有哪些重要的組件?
20、RabbitMQ 有哪些重要的角色?
2一、RabbitMQ 交換器類型有哪些?
2二、RabbitMQ 消息基於什麼傳輸?
2三、RabbitMQ 怎麼避免消息丟失?
2四、RabbitMQ 怎麼保證消息的穩定性?
2五、RabbitMQ 支持事務消息嗎?
2六、RabbitMQ 事務消息在什麼狀況下無效?
2七、RabbitMQ 接收到消息以後必須消費嗎?
2八、RabbitMQ 如何確保每一個消息能被消費?
2九、RabbitMQ 消息持久化的條件?
30、RabbitMQ 中的死信隊列是什麼?
3一、RabbitMQ 隊列中的消息是否有數量限制?
3二、RabbitMQ 怎麼實現消息延遲推送?
一、Linux 是什麼?
二、Linux 和 Unix 的區別?
三、Linux 系統有哪些優點?
四、Linux 怎麼查看內核版本?
五、RedHat、CentOS、Ubuntu 有什麼區別?
六、Linux 和 Windows 正反斜槓的區別?
七、Linux 環境變量配置有哪幾種方式?
八、Linux 安裝軟件有哪幾種方式?
九、Linux 普通用戶怎麼以管理員身份執行指令?
十、Linux 的 root 和 home 目錄有什麼不一樣?
十一、Linux 系統 root 和普通用戶的區別?
十二、Linux 怎麼區分 root 和普通用戶?
1三、Linux 怎麼切換用戶?
1四、Linux 中的 bash 是什麼?
1五、Linux 中的 Shell 是什麼?
1六、Linux 怎麼顯示目錄下的文件?
1七、Linux 中 ll 和 ls 命令的區別?
1八、Linux 怎麼建立文件?
1九、Linux 怎麼建立目錄?
20、Linux 怎麼切換目錄?
2一、Linux 怎麼切換到上 N 級目錄?
2二、Linux 怎麼切換到以前所在的目錄?
2三、Linux 怎麼切換到當前用戶主目錄?
2四、Linux 怎麼查看當前目錄所在路徑?
2五、Linux 下的權限有哪幾種?
2六、Linux 文件調用權限分爲哪 3 級?
2七、Linux 怎麼修改文件權限?
2八、Linux 怎麼修改文件全部者和所屬組?
2九、Linux 怎麼查看磁盤的使用狀況?
30、Linux 怎麼查看內存的使用狀況?
3一、Linux 怎麼查看資源消耗最多的進程?
3二、Linux 怎麼看端口被哪一個進程佔用?
3三、Linux 怎麼查找某個進程?
3四、Linux 怎麼結束某個進程?
3五、Linux 怎麼清屏?
3六、Linux 控制檯怎麼設置超時自動註銷?
3七、Linux vim 和 vi 命令的區別?
3八、Linux vim 命令怎麼使用?
3九、Linux 軟連接和硬連接區別?
40、Linux 怎麼建立軟、硬連接?
4一、Linux 中的零拷貝是指什麼?
4二、Linux 下 select,poll,epoll 的區別?
獲取全部面試題答案:
關注微信公衆號:Java技術棧,在後臺回覆:面試。
2020 就開始整理了,花了幾個月時間,花了很多精力啊,但願能幫助到你們。
本題庫還會不斷更新,涉及的類目還會更廣,預計會更新上 1000 道 Java 開發會遇到的主流面試題,關注微信公衆號:Java技術棧,回覆:面試,能夠獲取最新版。
近期熱文推薦:
1.Java 15 正式發佈, 14 個新特性,刷新你的認知!!
2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!
3.我用 Java 8 寫了一段邏輯,同事直呼看不懂,你試試看。。
以爲不錯,別忘了隨手點贊+轉發哦!