Java 后端面试题目全集

一、Java 基础(72题)

🔥 高频题

# 题目 频次
1 Java作为一门编程语言,其核心特点有哪些? 🔥
2 Java是如何实现"一次编写,到处运行"的跨平台特性的? 🔥
3 请解释JVM、JDK、JRE三者分别是什么,以及它们之间的关系? 🔥
4 为什么说Java既是编译型语言又是解释型语言?JIT编译器在其中起什么作用? 🔥
5 值传递和引用传递有什么区别?Java中使用的是哪一种?请举例说明。 🔥
6 Java的八种基本数据类型分别是什么?每种各占用多少字节? 🔥
7 为什么涉及金额计算时推荐使用BigDecimal而不是double或float? 🔥
8 什么是自动装箱和自动拆箱?使用过程中有哪些常见的坑? 🔥
9 Integer的缓存机制是什么?缓存范围是多少?为什么这样设计? 🔥
10 请结合代码示例,说明面向对象的三大特性:封装、继承、多态。 🔥
11 方法重载(Overload)和方法重写(Override)有什么区别?各自的规则是什么? 🔥
12 Java中抽象类和接口的区别是什么?在Java 8之后接口有哪些变化? 🔥
13 final关键字在Java中可以修饰类、方法、变量,分别有什么作用? 🔥
14 static关键字可以修饰哪些成员?分别产生什么效果? 🔥
15 深拷贝和浅拷贝的区别是什么?如何实现一个对象的深拷贝? 🔥
16 == 运算符与 equals() 方法在比较对象时有什么区别? 🔥
17 hashCode()和equals()方法之间有什么约束关系?为什么重写equals时必须重写hashCode? 🔥
18 String、StringBuffer、StringBuilder三者的区别是什么?分别在什么场景下使用? 🔥
19 Java 8引入了哪些重要的新特性?请列举并简要说明。 🔥
20 什么是Java反射机制?反射有哪些典型应用场景?它有什么优缺点? 🔥
21 请描述Java的异常体系结构:Error和Exception有什么区别?受检异常与非受检异常分别是什么? 🔥
22 双重校验锁(DCL)实现单例模式时,为什么必须使用volatile关键字? 🔥
23 BIO(阻塞IO)、NIO(非阻塞IO)、AIO(异步IO)三者的区别和适用场景分别是什么? 🔥
24 Java如何利用NIO的Channel、Buffer、Selector三大组件实现网络高并发编程? 🔥
25 什么是Java泛型?什么是泛型擦除?泛型擦除会带来哪些问题? 🔥

⭐ 中频题

# 题目 频次
26 相比其他编程语言,Java的核心优势和劣势分别是什么? ⭐
27 JVM(Java虚拟机)和Java语言本身有什么区别? ⭐
28 JVM是什么?它的核心职责有哪些? ⭐
29 编译型语言和解释型语言有什么区别?Java属于哪一种? ⭐
30 Python和Java在语言特性、运行机制、适用场景上有哪些区别? ⭐
31 int和long类型各占多少位、多少字节?各自的取值范围是多少? ⭐
32 long类型和int类型之间可以互相转换吗?转换时需要注意什么? ⭐
33 Java中的数据类型转换分为哪几种方式?各自可能引发什么问题? ⭐
34 Java中为什么既要有int基本类型,又要有Integer包装类?二者如何对比? ⭐
35 既然有了Integer包装类,为什么还要保留int基本类型? ⭐
36 Java多态体现在哪几个方面?请分别举例说明。 ⭐
37 多态机制解决了编程中的什么问题? ⭐
38 面向对象的六大设计原则(SOLID + 迪米特法则)分别是什么? ⭐
39 抽象类和普通类有什么区别?什么时候应该使用抽象类? ⭐
40 抽象类可以用final修饰吗?为什么? ⭐
41 从Java 8到Java 9,接口中可以定义哪些类型的方法? ⭐
42 抽象类可以直接new实例化吗?为什么? ⭐
43 接口中能否定义构造函数?为什么? ⭐
44 静态变量和静态方法在内存中是如何存储的?它们的加载时机是什么? ⭐
45 非静态内部类和静态内部类有什么区别?分别如何实例化? ⭐
46 非静态内部类为什么能直接访问外部类的成员?编译器背后做了什么? ⭐
47 实现对象深拷贝有哪几种方法?各自优缺点是什么? ⭐
48 Java中创建对象有哪几种方式?除了new关键字还有哪些途径? ⭐
49 通过new创建的对象什么时候会被垃圾回收?判断依据是什么? ⭐
50 如何访问一个类的私有字段或私有方法?有哪些途径? ⭐
51 Java注解的底层实现原理是什么? ⭐
52 @Retention注解的三种保留策略(SOURCE/CLASS/RUNTIME)分别代表什么含义? ⭐
53 @Target注解可以指定哪些作用域(ElementType)?常用的有哪些? ⭐
54 Java中异常处理有哪些方式?try-with-resources语法有什么好处? ⭐
55 为什么有些方法抛出异常时不需要显式使用throws声明? ⭐
56 如果try块中有return "a",finally块中也有return "b",最终返回什么?为什么? ⭐
57 Object类中有哪些常用方法?各自的作用是什么? ⭐
58 String类有哪些常用的方法?请列举并说明用途。 ⭐
59 Lambda表达式的基本语法是什么?它解决了什么问题? ⭐
60 Stream API有哪些常用操作?中间操作和终端操作有什么区别? ⭐
61 ParallelStream是什么?适用于什么场景?使用时需要注意哪些问题? ⭐
62 CompletableFuture是什么?它解决了传统Future的哪些痛点? ⭐
63 Java 21引入了哪些重要的新特性?虚拟线程(Virtual Thread)的原理是什么? ⭐
64 在进行Java对象序列化时,有哪些推荐的最佳实践? ⭐
65 Java原生序列化如何实现?serialVersionUID和transient关键字的作用是什么? ⭐
66 代理模式和适配器模式有什么区别?各自的适用场景是什么? ⭐
67 责任链模式和策略模式有什么区别?分别适用于什么业务场景? ⭐
68 NIO的三大核心组件Channel、Buffer、Selector分别起什么作用? ⭐
69 哪些主流框架底层使用了Java NIO技术? ⭐
70 如何用Comparable接口对学生列表按分数降序、学号升序排序? ⭐
71 Native方法是什么?Java中为什么要使用Native方法? ⭐
72 Java进程如何与操作系统进行交互?从用户态到内核态的调用链路是怎样的? ⭐

二、Java 集合(40题)

🔥 高频题

# 题目 频次
1 数组和集合有什么区别?你用过哪些Java集合类? 🔥
2 请画出Java集合框架的整体体系结构,Collection和Map两大分支分别包含哪些核心接口和实现类? 🔥
3 ArrayList和LinkedList在底层数据结构、随机访问、插入删除性能上有什么区别? 🔥
4 ArrayList的扩容机制是怎样的?扩容因子是多少?底层如何实现数组拷贝? 🔥
5 HashMap的底层实现原理是什么?JDK 1.7和1.8在数据结构上有什么变化? 🔥
6 请详细描述HashMap的put方法的完整执行流程。 🔥
7 HashMap的扩容机制是怎样的?JDK 1.8在扩容时做了哪些优化? 🔥
8 HashMap的容量为什么必须是2的n次方?这样设计有什么好处? 🔥
9 ConcurrentHashMap在JDK 1.7和1.8中实现原理有什么不同?分别如何保证线程安全? 🔥
10 HashMap、Hashtable、ConcurrentHashMap三者在线程安全性、性能、null值支持上有什么差异? 🔥
11 HashMap在链表转红黑树时,为什么选择红黑树而不是AVL树? 🔥
12 为什么重写equals方法时必须同时重写hashCode方法?如果不重写会发生什么问题? 🔥

⭐ 中频题

# 题目 频次
13 Java中有哪些线程安全的集合类?它们分别通过什么机制实现线程安全? ⭐
14 java.util.Collections工具类和java.util.Collection接口有什么区别? ⭐
15 集合遍历有哪些方式?哪种方式可以在遍历时安全地删除元素? ⭐
16 List接口有哪几种常见实现?它们之间的核心区别是什么? ⭐
17 使用for-each或Iterator遍历List时,能否直接修改List中的元素?什么是fail-fast机制? ⭐
18 如何高效地删除List中指定下标位置的元素? ⭐
19 ArrayList和Vector有什么区别?Vector为什么逐渐被弃用? ⭐
20 ArrayList存在线程安全问题吗?有哪些解决方案? ⭐
21 什么场景下应该使用ArrayList,什么场景下应该使用LinkedList? ⭐
22 CopyOnWriteArrayList是如何实现线程安全的?它适用于什么场景?有什么缺点? ⭐
23 为什么List会编译报错,而List可以?背后的泛型擦除机制是怎样的? ⭐
24 List和数组之间如何互相转换?使用Arrays.asList()有哪些常见的坑? ⭐
25 Java集合中List和Set的核心区别是什么?在什么场景下选择Set? ⭐
26 如何对一个Set集合进行排序?TreeSet和HashSet在排序上有什么区别? ⭐
27 Set集合是如何保证元素不重复的?底层依赖什么机制? ⭐
28 Java中有哪些有序的Set实现?它们分别通过什么方式保证顺序? ⭐
29 常见的Map实现类有哪些?它们在有序性、线程安全性、性能上有什么区别? ⭐
30 遍历Map有哪几种方式?哪种方式效率最高?为什么推荐使用entrySet? ⭐
31 哈希冲突的解决方法有哪些?HashMap采用的是哪种? ⭐
32 HashMap是线程安全的吗?JDK 1.7中HashMap在多线程下可能产生什么问题? ⭐
33 HashMap中get方法获取元素的完整过程是怎样的? ⭐
34 HashMap的get方法在并发场景下调用一定安全吗?可能出现什么问题? ⭐
35 在使用HashMap时,一般用什么类型作为Key?为什么String是比较理想的选择? ⭐
36 HashMap允许key为null吗?ConcurrentHashMap呢?为什么这样设计? ⭐
37 往一个初始容量为16的HashMap中依次存入20个元素,会触发几次扩容? ⭐
38 HashMap的默认负载因子是0.75,这个值是怎么确定的?为什么不是0.8或0.6? ⭐
39 HashMap和Hashtable在继承关系、线程安全、null值处理、性能上有哪些区别? ⭐
40 ConcurrentHashMap在JDK 1.8中为什么同时使用CAS和synchronized两种机制? ⭐

三、多线程与并发(30题)

🔥 高频题

# 题目 频次
1 什么是Java内存模型(JMM)?它如何保证并发编程中的原子性、可见性和有序性? 🔥
2 synchronized锁的升级过程是怎样的?偏向锁、轻量级锁、重量级锁分别是什么? 🔥
3 synchronized和ReentrantLock有什么区别?分别在什么场景下使用? 🔥
4 什么是可重入锁?synchronized是如何实现锁重入的? 🔥
5 AQS(AbstractQueuedSynchronizer)的核心原理是什么?它是如何实现锁的获取与释放的? 🔥
6 volatile关键字有什么作用?它能保证原子性吗?底层是如何实现可见性和禁止指令重排的? 🔥
7 CAS(Compare And Swap)是什么?它有哪些优缺点?什么是ABA问题? 🔥
8 乐观锁和悲观锁的区别是什么?分别在什么场景下使用?Java中有哪些对应的实现? 🔥
9 ThreadLocal的底层实现原理是什么?为什么可能导致内存泄漏?如何解决? 🔥
10 死锁产生的四个必要条件是什么?如何预防和排查死锁? 🔥
11 线程池的7个核心参数分别是什么?请描述线程池的工作流程和4种拒绝策略。 🔥
12 为什么阿里巴巴开发手册禁止使用Executors来创建线程池? 🔥
13 双重校验锁(DCL)实现单例时,为什么必须给instance变量加volatile? 🔥

⭐ 中频题

# 题目 频次
14 Java中的多线程编程是什么?在实际开发中需要注意哪些问题? ⭐
15 Java线程和操作系统线程是一一对应的吗?Java 21的虚拟线程(Virtual Thread)带来了什么变化? ⭐
16 多线程并发的三个核心要素是什么?并发会导致哪些数据一致性问题? ⭐
17 Java中创建线程有哪几种方式?调用start()和直接调用run()有什么区别? ⭐
18 如何安全地停止一个正在运行的线程?interrupt()方法的机制是什么? ⭐
19 Java线程有哪几种状态?各状态之间如何转换? ⭐
20 sleep()和wait()方法有什么区别?调用后线程分别进入什么状态?是否会释放锁? ⭐
21 线程的BLOCKED状态和WAITING状态有什么区别?wait()/notify()/notifyAll()的用法是什么? ⭐
22 Java中线程间通信的方式有哪些? ⭐
23 Go语言的协程(Goroutine)和Java线程有什么区别? ⭐
24 JUC(java.util.concurrent)包下有哪些常用的并发工具类? ⭐
25 公平锁和非公平锁有什么区别?ReentrantLock默认是哪种?为什么非公平锁性能更好? ⭐
26 如何根据CPU密集型和IO密集型场景合理配置线程池参数? ⭐
27 线程池的shutdown()和shutdownNow()方法有什么区别? ⭐
28 如何用两个线程交替打印奇数和偶数?请用wait/notify实现。 ⭐
29 CountDownLatch的用法是什么?适用于什么场景? ⭐
30 两个线程各对一个共享变量执行50次i++操作,最终结果一定是100吗?为什么? ⭐

四、JVM内存与GC(34题)

🔥 高频题

# 题目 频次
1 请画出JVM运行时内存区域结构图,并说明每个区域的作用(堆、栈、方法区/元空间、程序计数器、本地方法栈)。 🔥
2 JVM内存模型中堆和栈的本质区别是什么?各自存储什么内容? 🔥
3 Java堆内存分为哪几个区域?新生代中的Eden区和Survivor区是如何协作的? 🔥
4 JVM有哪些类加载器?什么是双亲委派模型?它的工作流程是怎样的? 🔥
5 请描述一个类从加载到初始化的完整过程(加载→验证→准备→解析→初始化)。 🔥
6 JVM垃圾回收算法有哪几种?请分别说明其原理和优缺点。 🔥
7 JVM有哪些常见的垃圾回收器?各自的特点和适用场景是什么? 🔥
8 Minor GC、Major GC、Full GC有什么区别?什么情况下会触发Full GC? 🔥
9 CMS垃圾回收器和G1垃圾回收器在实现原理、回收阶段、适用场景上有什么区别? 🔥
10 G1垃圾回收器相比于CMS有哪些核心改进?Region化内存布局带来什么好处? 🔥
11 Java中有哪几种引用类型(强引用、软引用、弱引用、虚引用)?它们的区别和使用场景是什么? 🔥

⭐ 中频题

# 题目 频次
12 JVM栈帧中存储的是对象的引用(指针)还是对象本身? ⭐
13 如果创建了一个很大的对象,它一般会被分配在堆的哪个区域?什么情况下会直接进入老年代? ⭐
14 程序计数器(PC寄存器)有什么作用?为什么它必须是线程私有的? ⭐
15 方法区中方法的执行过程是怎样的? ⭐
16 除了类信息和方法代码,方法区/元空间中还存储了哪些内容? ⭐
17 字符串常量池(String Pool)在JDK不同版本中分别位于哪个内存区域? ⭐
18 执行 String s = new String("abc") 这行代码,一共创建了几个对象?分别在内存的什么位置? ⭐
19 弱引用(WeakReference)是什么?有哪些典型使用场景? ⭐
20 内存泄漏(Memory Leak)和内存溢出(OutOfMemoryError)有什么区别?如何理解? ⭐
21 JVM运行时数据区中,哪些区域可能发生内存溢出? ⭐
22 线上发生堆内存溢出(Heap OOM)时,如何排查和解决? ⭐
23 什么情况下会发生栈内存溢出(StackOverflowError)?如何定位? ⭐
24 ThreadLocal为什么可能导致内存泄漏?底层是如何引发的?应该如何正确使用? ⭐
25 请描述JVM创建一个对象的完整过程,从类加载检查到对象初始化。 ⭐
26 一个Java对象从创建到被回收,完整的生命周期是怎样的? ⭐
27 双亲委派模型有什么作用?有哪些场景会破坏双亲委派模型? ⭐
28 类和双亲委派原则之间有什么关系? ⭐
29 什么是Java中的垃圾回收(Garbage Collection)?如何主动触发GC? ⭐
30 JVM判断一个对象是否可以被回收的方法有哪些?引用计数法和可达性分析有什么区别? ⭐
31 标记-清除(Mark-Sweep)算法的缺点是什么?会产生什么问题? ⭐
32 哪些垃圾回收算法的执行阶段会出现STW(Stop The World)? ⭐
33 在什么场景下应该选择CMS,什么场景下应该选择G1? ⭐
34 GC只会对堆内存进行回收吗?元空间中的类信息会被卸载吗? ⭐

五、Spring全家桶与MyBatis(44题)

🔥 高频题

# 题目 频次
1 什么是IoC(控制反转)?Spring IoC容器是如何通过依赖注入(DI)管理对象之间的依赖关系的? 🔥
2 请描述Spring IoC容器的初始化过程,从配置文件/注解扫描到Bean的实例化。 🔥
3 什么是AOP(面向切面编程)?请解释切面、连接点、通知、切入点、织入这几个核心概念。 🔥
4 Spring AOP的底层代理机制是什么?JDK动态代理和CGLIB代理分别在什么情况下使用? 🔥
5 请完整描述Spring Bean的生命周期,从实例化到销毁经历了哪些阶段? 🔥
6 什么是Spring中的循环依赖问题?Spring是如何通过三级缓存解决的? 🔥
7 Spring声明式事务在什么情况下会失效?请列举常见的几种情况。 🔥
8 Spring Boot的自动装配(Auto Configuration)原理是什么?@SpringBootApplication注解背后做了什么? 🔥
9 MyBatis中 #{} 和 ${} 有什么区别?为什么推荐使用 #{} ? 🔥
10 什么是缓存雪崩、缓存击穿、缓存穿透?分别如何解决? 🔥
11 Spring框架中使用了哪些设计模式?请举例说明。 🔥

⭐ 中频题

# 题目 频次
12 JDK动态代理和CGLIB代理在实现原理、性能、限制上有什么区别? ⭐
13 Spring中Bean默认是单例的吗?单例Bean和非单例Bean的生命周期有什么区别? ⭐
14 Spring Bean的作用域(Scope)有哪几种?分别适用于什么场景? ⭐
15 Spring IoC容器中实际存储的是什么? ⭐
16 如何在Bean初始化前后或销毁前执行自定义逻辑?有哪些实现方式? ⭐
17 Spring提供了哪些扩展点?请列举常用的几个。 ⭐
18 Spring解决循环依赖的三级缓存分别是什么?每一级缓存存储的内容和作用是什么? ⭐
19 Spring中有哪些常用注解?@Autowired、@Component、@Configuration等的作用分别是什么? ⭐
20 在同一个类中,一个非事务方法通过this调用事务方法,事务会生效吗?为什么? ⭐
21 在Spring Boot项目中如何开启和使用事务? ⭐
22 请描述MVC模式的三层架构,每一层的职责是什么? ⭐
23 Spring MVC处理一个HTTP请求的完整流程是怎样的? ⭐
24 Spring MVC中的HandlerMapping和HandlerAdapter分别起什么作用? ⭐
25 为什么越来越多的项目选择Spring Boot而不是传统Spring?它解决了哪些痛点? ⭐
26 Spring Boot框架中用到了哪些设计模式? ⭐
27 如何理解Spring Boot中"约定大于配置"的设计理念?请举例说明。 ⭐
28 一个标准的Spring Boot项目结构是怎样的?各目录的作用是什么? ⭐
29 请列举几个常用的Spring Boot Starter启动器及其作用。 ⭐
30 你有自定义过Spring Boot Starter吗?说说自定义Starter的主要步骤。 ⭐
31 Spring Boot中有哪些核心注解?@SpringBootApplication内部包含了哪些注解? ⭐
32 Spring Boot是如何实现"引入依赖即可直接使用"的自动配置的? ⭐
33 Spring Boot中过滤器(Filter)和拦截器(Interceptor)有什么区别?分别如何实现? ⭐
34 与传统的JDBC编程相比,MyBatis有哪些优势? ⭐
35 在你看来,MyBatis在哪些方面做得比较好? ⭐
36 请简述使用JDBC原生方式连接数据库并进行查询的标准步骤。 ⭐
37 使用MyBatis原生的XML方式如何进行数据库查询?需要配置哪些内容? ⭐
38 MyBatis-Plus和MyBatis有什么区别?Plus解决了哪些问题? ⭐
39 MyBatis框架中运用了哪些常见的设计模式? ⭐
40 Spring Cloud和Spring Boot有什么区别?分别在什么场景下使用? ⭐
41 你用过哪些Spring Cloud微服务组件?各自的作用是什么? ⭐
42 负载均衡有哪些常见的算法?各自的特点是什么? ⭐
43 如何实现会话保持,使得同一个用户的请求始终被路由到同一台服务器? ⭐
44 服务熔断和服务降级有什么区别?分别在什么场景下触发? ⭐

六、MySQL数据库(91题)

🔥 高频题

# 题目 频次
1 数据库事务的四大特性(ACID)分别是什么?MySQL是如何通过undo log、redo log、MVCC等机制来实现的? 🔥
2 事务的四种隔离级别分别是什么?各自解决了哪些并发问题(脏读/不可重复读/幻读)? 🔥
3 MySQL的默认事务隔离级别是什么?为什么选择这个级别? 🔥
4 MVCC(多版本并发控制)的实现原理是什么?Read View和undo log版本链是如何协作的? 🔥
5 什么是数据库索引?它为什么能提高查询效率? 🔥
6 数据库索引可以从哪些维度进行分类?请分别举例说明。 🔥
7 MySQL中聚簇索引(Clustered Index)和非聚簇索引(Secondary Index)的核心区别是什么? 🔥
8 MySQL的InnoDB引擎为什么使用B+树作为索引结构?相比B树、哈希表、二叉搜索树有什么优势? 🔥
9 联合索引(Composite Index)的实现原理是什么?什么是最左匹配原则? 🔥
10 索引在哪些情况下会失效?请列举常见的场景并解释原因。 🔥
11 什么是回表查询?什么是覆盖索引?覆盖索引如何避免回表? 🔥
12 MySQL中有哪些类型的锁?全局锁、表级锁、行级锁分别有什么作用和适用场景? 🔥
13 binlog(二进制日志)有哪三种格式?各自的优缺点是什么? 🔥
14 Undo Log(回滚日志)的作用是什么?它是如何支持事务回滚和MVCC的? 🔥
15 有了Undo Log为什么还需要Redo Log?Redo Log解决的核心问题是什么? 🔥
16 Redo Log是如何保证事务持久性(Durability)的?它的写入机制是怎样的? 🔥
17 binlog的两阶段提交(Two-Phase Commit)过程是怎样的?为什么需要两阶段提交? 🔥
18 一条UPDATE语句在MySQL内部从接收到返回结果的完整执行过程是怎样的? 🔥
19 EXPLAIN命令有什么作用?如何通过EXPLAIN的输出判断SQL是否使用了索引? 🔥
20 如果发现某张表的查询速度非常慢,你会从哪些方面入手排查和优化? 🔥
21 InnoDB和MyISAM存储引擎有哪些核心区别?为什么现在默认使用InnoDB? 🔥
22 MySQL主从复制的原理是什么?有哪些常见的复制模式? 🔥
23 为什么MySQL推荐使用自增ID作为主键,而不是UUID? 🔥

⭐ 中频题

# 题目 频次
24 NoSQL数据库和传统SQL数据库的核心区别是什么?分别在什么场景下选择? ⭐
25 数据库设计的三大范式分别是什么?在实际开发中是否必须严格遵守? ⭐
26 MySQL中如何进行多表连接查询?INNER JOIN、LEFT JOIN、RIGHT JOIN的区别是什么? ⭐
27 MySQL中如何避免重复插入数据?有哪些实现方式? ⭐
28 CHAR和VARCHAR类型有什么区别?分别在什么场景下使用? ⭐
29 VARCHAR(100)中的100代表的是字节数还是字符数?与编码有关吗? ⭐
30 INT(1)和INT(10)有什么不同?括号中的数字代表什么含义? ⭐
31 TEXT数据类型可以存储无限大的数据吗?它有哪些限制? ⭐
32 IP地址在数据库中应该如何存储?用字符串还是整数? ⭐
33 什么是外键约束?在实际项目中是否推荐使用外键?为什么? ⭐
34 MySQL中IN和EXISTS关键字有什么区别?分别在什么场景下使用? ⭐
35 MySQL中有哪些常用的内置函数?请按字符串、日期、数值、聚合等分类列举。 ⭐
36 SQL查询语句中各子句的执行顺序是怎样的?FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT? ⭐
37 SQL题:查询没有选修01号课程但选修了02号课程的学生成绩信息。 ⭐
38 SQL题:查询总成绩排名在第5到第10名的学生信息。 ⭐
39 SQL题:查询某个班级下所有学生的课程选修情况,包括未选课的学生。 ⭐
40 如何利用MySQL实现一个可重入的分布式锁? ⭐
41 一条SQL语句从客户端发送到MySQL服务器后,内部经历了哪些处理步骤? ⭐
42 MySQL有哪些存储引擎?InnoDB、MyISAM、Memory各自的特点和适用场景是什么? ⭐
43 为什么MySQL将InnoDB作为默认存储引擎? ⭐
44 MySQL的数据文件分为哪几种类型?各自存储什么内容? ⭐
45 哈希索引的使用场景是什么?为什么InnoDB不默认使用哈希索引? ⭐
46 如果聚簇索引中某行数据的索引列值发生了更新,该行数据在磁盘上的物理存储位置会不会改变? ⭐
47 MySQL中主键默认就是聚簇索引吗?如果没有显式定义主键,聚簇索引如何确定? ⭐
48 什么样的字段适合作为主键?需要满足哪些条件? ⭐
49 性别字段(只有男/女两种值)适合加索引吗?为什么? ⭐
50 MySQL中索引的底层数据结构是如何实现的?B+树在InnoDB中具体如何组织? ⭐
51 通过B+树索引定位到叶子节点后,如何查找具体的数据行?页目录(Page Directory)是如何工作的? ⭐
52 B+树的核心特性有哪些? ⭐
53 B+树和B树在结构上有哪些区别? ⭐
54 B+树作为数据库索引结构,有哪些优势? ⭐
55 B+树叶子节点之间的链表是单向的还是双向的?为什么这样设计? ⭐
56 为什么MySQL使用B+树而不是Redis中使用的跳表(Skip List)? ⭐
57 创建联合索引时需要注意哪些原则?字段顺序如何确定? ⭐
58 联合索引(A,B,C),查询条件为 A=xxx AND C<xxx,索引会如何被使用? ⭐
59 联合索引(a,b,c),查询条件 WHERE b>xxx AND a=x,这个查询能用到索引吗?为什么? ⭐
60 联合索引(a,b,c),查询条件 WHERE a=2 AND c=1,能用到联合索引吗?会使用索引的哪些字段? ⭐
61 什么是覆盖索引?它为什么可以避免回表查询? ⭐
62 当一张表同时存在单列索引和包含该列的联合索引时,查询会优先走哪个索引? ⭐
63 索引已经建立好之后,再往表中插入一条新数据,索引结构会发生哪些变化? ⭐
64 索引字段建得越多越好吗?索引有哪些优缺点? ⭐
65 如何决定在哪些字段上建立索引?判断依据是什么? ⭐
66 索引优化有哪些常见的策略和技巧? ⭐
67 什么是前缀索引?适用于什么场景?有什么注意事项? ⭐
68 MySQL在并发场景下可能出现哪些数据一致性问题? ⭐
69 哪些业务场景对脏读是不能容忍的? ⭐
70 MySQL是如何通过锁机制和MVCC来解决并发问题的? ⭐
71 在可重复读(REPEATABLE READ)隔离级别下,事务A提交的数据,事务B能立即读到吗? ⭐
72 请举例说明在可重复读隔离级别下仍然可能发生的幻读问题。 ⭐
73 在可重复读隔离级别下,如何使用SELECT ... FOR UPDATE来避免幻读? ⭐
74 串行化(SERIALIZABLE)隔离级别是通过什么机制实现的? ⭐
75 一条UPDATE语句的执行是原子性的吗?底层是如何保证的? ⭐
76 滥用事务或者在事务中执行过多的SQL语句会带来什么问题? ⭐
77 数据库的表级锁和行级锁分别有什么作用?分别在什么场景下使用? ⭐
78 两个事务同时对同一条数据执行UPDATE操作,会不会发生阻塞? ⭐
79 两个UPDATE语句分别操作不同主键范围的数据,会互相阻塞吗? ⭐
80 如果两个UPDATE的范围条件字段不是主键也没有索引,它们还会互相阻塞吗? ⭐
81 能不能只用binlog而不用redo log?redo log存在的必要性是什么? ⭐
82 MySQL是如何保障数据不丢失的?涉及哪些机制? ⭐
83 Redo Log是存储在内存中还是磁盘上的?它的写入流程是怎样的? ⭐
84 为什么MySQL要先把修改写入Redo Log,而不是直接更新B+树中的数据页? ⭐
85 MySQL的Double Write Buffer(两次写)机制是什么?它解决了什么问题? ⭐
86 如何查看一条SQL语句是否使用了索引? ⭐
87 如何查看一张表上建立了哪些索引? ⭐
88 如果EXPLAIN显示优化器选择的索引不正确,有什么办法干预? ⭐
89 MySQL主从复制出现延迟时,有哪些处理方法? ⭐
90 数据库的分库和分表是什么?有什么区别?分别在什么场景下使用? ⭐
91 MySQL中如何实现一个可重入的锁? ⭐

七、Redis全栈(44题)

🔥 高频题

# 题目 频次
1 Redis支持哪些数据类型?每种类型的底层数据结构是什么? 🔥
2 Zset(有序集合)的底层数据结构是如何实现的?从压缩列表到跳表的演进过程是怎样的? 🔥
3 跳表(Skip List)的数据结构是怎样的?它如何实现快速查找、插入和删除? 🔥
4 Redis的Zset为什么使用跳表而不是B+树作为底层数据结构? 🔥
5 Redis中哈希表的扩容过程是怎样的?什么是渐进式rehash? 🔥
6 Redis的String类型底层使用什么数据结构存储?为什么不用C语言原生的字符串?SDS有什么优势? 🔥
7 「Redis为什么这么快?」请从数据结构、内存操作、IO模型、单线程等多个维度分析。 🔥
8 Redis有哪几种持久化方式?RDB和AOF各自的原理和优缺点是什么?混合持久化是怎样的? 🔥
9 Redis有哪几种内存淘汰策略?分别适用于什么场景? 🔥
10 Redis的过期键删除策略是怎样的?惰性删除和定期删除是如何配合工作的? 🔥
11 Redis哨兵(Sentinel)模式的原理是什么?如何实现监控、自动故障转移和通知? 🔥
12 Redis集群(Cluster)模式是怎样的?哈希槽分配机制(16384个槽)是如何工作的? 🔥
13 如何用Redis实现一个分布式锁?需要注意哪些问题? 🔥
14 在使用Redis做缓存时,如何保证Redis和MySQL之间的数据一致性?请说明旁路缓存策略。 🔥
15 什么是缓存雪崩、缓存击穿、缓存穿透?分别有哪些解决方案? 🔥
16 布隆过滤器(Bloom Filter)的原理是什么?它在解决缓存穿透中如何应用? 🔥
17 如何设计一个支持高并发的秒杀系统?如何处理超卖问题? 🔥

⭐ 中频题

# 题目 频次
18 Zset(有序集合)有哪些常用命令?你实际项目中有用过吗? ⭐
19 Redis中Set和Zset有什么区别?分别在什么场景下使用? ⭐
20 跳表在插入新节点时,如何随机确定节点的层高? ⭐
21 压缩列表(ZipList)的数据结构是怎样的?它的连锁更新问题是什么? ⭐
22 Redis中的listpack是什么?它如何解决了压缩列表的连锁更新问题? ⭐
23 Redis哈希表在进行渐进式rehash过程中,如果有读请求到来,数据是如何查找的? ⭐
24 Redis的Zset在你做过的项目中具体有哪些应用场景? ⭐
25 Redis在哪些地方使用了多线程?Redis 6.0引入的多线程I/O是怎么回事? ⭐
26 Redis是如何通过epoll和Reactor模式实现I/O多路复用的? ⭐
27 Redis的网络模型是怎样的?单线程事件循环是如何工作的? ⭐
28 如何保证Redis中多个操作的原子性?有哪些实现方式? ⭐
29 除了Lua脚本,还有其他方式保证Redis操作的原子性吗?事务(MULTI/EXEC)能保证吗? ⭐
30 Redis的过期删除策略和内存淘汰策略有什么区别?分别在什么情况下触发? ⭐
31 Redis的key过期后会不会被立即删除?如果不是,为什么这样设计? ⭐
32 Redis主从同步中,增量同步和全量同步分别是怎么实现的? ⭐
33 Redis的主从架构和集群架构能保证数据的强一致性吗?为什么? ⭐
34 哨兵模式中选举新主节点的算法是怎样的? ⭐
35 Redis Cluster模式下,客户端如何知道一个key应该访问哪个分片节点? ⭐
36 在你的项目中,选择使用Redis的主要原因是什么? ⭐
37 Redis为什么比MySQL的查询速度快那么多? ⭐
38 本地缓存(如Caffeine)和Redis分布式缓存有什么区别?分别在什么场景使用? ⭐
39 在高并发场景下,单节点Redis+单节点MySQL大概能支撑多大的并发量? ⭐
40 Redis在实际项目中有哪些常见的应用场景? ⭐
41 Redis除了作为缓存,还有哪些应用场景(如消息队列、分布式锁)? ⭐
42 Redis支持并发操作吗?单个命令是原子的吗? ⭐
43 Redis中的大Key问题是什么?会带来什么影响?如何排查和解决? ⭐
44 什么是Redis的热Key问题?如何发现和解决? ⭐

八、消息队列(36题)

🔥 高频题

# 题目 频次
1 为什么在系统架构中需要引入消息队列?它解决了哪些核心问题(解耦、异步、削峰)? 🔥
2 使用消息队列会带来哪些副作用和挑战? 🔥
3 RabbitMQ、RocketMQ、Kafka三者如何做技术选型?各自的适用场景和优缺点对比? 🔥
4 消息重复消费的问题如何解决?如何保证消费者处理的幂等性? 🔥
5 如何保证消息不丢失?请从生产端、存储端、消费端三个阶段分别分析。 🔥
6 如何保证消息写入的幂等性?有哪些实现手段? 🔥
7 消息队列出现消息积压时,应该如何排查和处理? 🔥
8 在分布式系统中,如何利用消息队列保证数据最终一致性?事务消息是如何实现的? 🔥
9 Kafka为什么吞吐量这么高?顺序写、零拷贝、批量发送、压缩等机制是如何工作的? 🔥
10 消息中间件如何实现高可用?请分别说明主从架构和集群架构的高可用方案。 🔥
11 Kafka和RocketMQ的消息确认机制(ACK)有什么不同? 🔥
12 RocketMQ是如何通过事务消息实现分布式事务的? 🔥

⭐ 中频题

# 题目 频次
13 什么是消息队列?它的核心概念(生产者、消费者、Broker、Topic、队列)分别是什么? ⭐
14 消息队列有哪些典型的使用场景?请结合实际业务举例说明。 ⭐
15 消息队列的设计借鉴了哪种设计模式? ⭐
16 如果让你从零设计一个消息队列,你会如何设计它的架构?需要考虑哪些方面? ⭐
17 在项目中为什么选择了RocketMQ而不是其他消息队列? ⭐
18 RocketMQ和Kafka在架构设计上有哪些核心区别?如何进行技术选型? ⭐
19 RocketMQ的延时消息(定时消息)底层实现原理是什么? ⭐
20 RocketMQ如何保证消息的顺序性? ⭐
21 RocketMQ如何保证消息不丢失?涉及哪些配置和机制? ⭐
22 RocketMQ出现消息积压时,有哪些排查手段和处理方案? ⭐
23 你对Kafka有哪些了解?它的核心架构是怎样的? ⭐
24 Kafka是消费者主动拉取(Pull)还是Broker推送(Push)?为什么选择这种模式? ⭐
25 Kafka如何保证单个分区内消息的顺序性? ⭐
26 Kafka出现消息积压时,有哪些处理方法? ⭐
27 为什么Kafka中一个分区只能被同一个消费者组内的一个消费者消费? ⭐
28 Kafka消费者线程数和Topic分区数之间有什么关系?应该如何配置? ⭐
29 Kafka和RocketMQ在Broker架构设计上有什么不同? ⭐
30 RabbitMQ和AMQP协议是什么关系? ⭐
31 RabbitMQ有哪些核心组件(Connection、Channel、Exchange、Queue、Binding)? ⭐
32 RabbitMQ有哪几种交换机(Exchange)类型?各自的路由规则是什么? ⭐
33 RabbitMQ有哪些重要特性(消息确认、持久化、死信队列、延迟队列等)? ⭐
34 RabbitMQ的底层架构是怎样的? ⭐
35 RabbitMQ如何保障消息的可靠性投递? ⭐
36 RabbitMQ的延迟队列和死信队列(DLX)机制是什么?如何配合使用? ⭐

九、分布式理论(19题)

🔥 高频题

# 题目 频次
1 什么是CAP理论?分布式系统中一致性©、可用性(A)、分区容错性§三者之间如何权衡? 🔥
2 什么是BASE理论?它与ACID的区别是什么?在分布式系统中如何应用? 🔥
3 如何用Redis实现分布式锁?请详细说明加锁、解锁的完整流程以及潜在问题。 🔥
4 分布式事务的解决方案有哪些?2PC、3PC、TCC、Saga、可靠消息最终一致性各自的原理和优缺点是什么? 🔥
5 请描述Raft共识算法的核心机制(Leader选举、日志复制、安全性)。 🔥
6 Raft协议和Paxos协议相比有哪些异同?为什么Raft在实际工程中更受欢迎? 🔥

⭐ 中频题

# 题目 频次
7 什么是分布式系统?它与集中式系统的核心区别是什么? ⭐
8 分布式系统和微服务架构有什么区别和联系? ⭐
9 除了Redis,还有哪些实现分布式锁的方式?ZooKeeper如何实现? ⭐
10 什么场景下需要使用分布式ID?它解决了什么问题? ⭐
11 分布式ID的生成方案有哪些?UUID、数据库号段、Redis、雪花算法各自的优缺点? ⭐
12 在什么业务场景下需要引入分布式事务? ⭐
13 阿里巴巴的Seata分布式事务框架了解吗?它有哪几种事务模式? ⭐
14 什么是RPC(远程过程调用)?它的核心概念和工作原理是什么? ⭐
15 ZooKeeper主要用来做什么?它的核心原理(ZAB协议、临时节点、Watch机制)是什么? ⭐
16 常见的限流算法有哪些?计数器、滑动窗口、漏桶、令牌桶分别是什么原理? ⭐
17 请描述Paxos共识算法的基本思想和工作流程。 ⭐
18 有哪些框架或技术底层使用了Raft共识协议? ⭐
19 请描述ZAB(ZooKeeper Atomic Broadcast)协议的工作原理。 ⭐

十、系统设计与场景题(14题)

🔥 高频题

# 题目 频次
1 如何设计一个支持高并发的秒杀系统?请从前端、网关、后端服务、数据库、缓存各层详细说明。 🔥
2 10万用户同时抢购10个库存商品,你会如何设计系统来保证不超卖且性能可接受? 🔥
3 如果让你从零设计一个RPC框架,你会考虑哪些模块?如何设计通信协议、序列化、服务注册与发现? 🔥
4 如果系统的QPS突然提升了10倍,现有架构扛不住了,你会从哪些方面进行优化和改造? 🔥
5 如何实现"订单30分钟未支付自动取消"的功能?有哪些技术方案?各有什么优缺点? 🔥

⭐ 中频题

# 题目 频次
6 如何设计一个短链系统(类似短网址服务)?请从生成算法、存储、高并发等方面考虑。 ⭐
7 如何设计一个点赞系统?需要支持高并发点赞和取消点赞,以及点赞数的实时统计。 ⭐
8 如何设计一个分布式ID发号器?需要保证全局唯一、趋势递增、高可用。 ⭐
9 大流量网站中,单台Redis已经无法承受压力了,你会如何解决? ⭐
10 如何设计一个支持可重入的分布式锁?需要考虑哪些关键问题? ⭐
11 负载均衡有哪些实现方案?四层负载均衡和七层负载均衡有什么区别? ⭐
12 什么是微服务架构?它与单体架构相比有什么优势和挑战? ⭐
13 一个单体项目如何逐步拆分成微服务架构?拆分的策略和原则是什么? ⭐
14 对外提供的API服务,客户反馈请求频繁超时,你会如何排查和定位问题? ⭐

十一、计算机网络(66题)

🔥 高频题

# 题目 频次
1 请对比说明OSI七层模型和TCP/IP四层模型,各层的功能和典型协议分别是什么? 🔥
2 TCP协议和IP协议分别位于TCP/IP模型的哪一层? 🔥
3 HTTP常用的状态码有哪些?请按1xx~5xx分类列举并说明含义。 🔥
4 HTTP的GET和POST方法有什么区别?从语义、参数位置、安全性、幂等性等方面对比。 🔥
5 HTTP和HTTPS的核心区别是什么?HTTPS在HTTP基础上增加了哪些安全机制? 🔥
6 请描述HTTPS的TLS握手过程(以TLS 1.2 RSA密钥交换为例)。 🔥
7 HTTP/1.1和HTTP/2.0有什么区别?HTTP/2.0做了哪些核心优化(多路复用、头部压缩、服务器推送)? 🔥
8 请描述DNS域名解析的完整工作流程,从浏览器输入URL到获取IP地址。 🔥
9 Cookie和Session有什么区别?各自的工作原理和使用场景是什么? 🔥
10 Token、Session、Cookie三种身份认证方式有什么区别?分别在什么场景下使用? 🔥
11 JWT(JSON Web Token)和传统的Session认证方式有什么区别?各自的优缺点? 🔥
12 请描述TCP三次握手建立连接的完整过程,每一步发送的报文和状态变化。 🔥
13 为什么TCP建立连接需要三次握手,而不是两次或四次? 🔥
14 请描述TCP四次挥手断开连接的完整过程,每一步的状态变化。 🔥
15 为什么TCP挥手需要四次,中间两次(FIN和ACK)为什么不能合并为一次? 🔥
16 为什么TCP四次挥手后,主动关闭方要进入TIME_WAIT状态并等待2MSL? 🔥
17 TCP和UDP协议的核心区别是什么?分别在什么应用场景下使用? 🔥
18 TCP是如何保证可靠传输的?请说明其六大核心机制(确认应答、超时重传、流量控制、拥塞控制、校验和、序列号)。 🔥
19 什么是TCP粘包和拆包问题?产生的原因是什么?如何解决? 🔥
20 请描述TCP拥塞控制的四个阶段:慢启动、拥塞避免、拥塞发生、快速恢复。 🔥
21 HTTP长连接和WebSocket有什么区别?各自的适用场景是什么? 🔥

⭐ 中频题

# 题目 频次
22 TCP/IP模型的应用层有哪些常见的协议?各自的功能是什么? ⭐
23 HTTP请求报文和响应报文分别由哪些部分组成? ⭐
24 HTTP状态码301和302分别表示什么?有什么区别? ⭐
25 HTTP状态码502(Bad Gateway)和504(Gateway Timeout)有什么区别? ⭐
26 HTTP有哪些请求方法?GET、POST、PUT、DELETE、PATCH等各自的作用是什么? ⭐
27 HTTP的长连接(Keep-Alive)是什么?它是如何工作的? ⭐
28 HTTP协议默认的端口号是多少?HTTPS呢? ⭐
29 HTTP/1.1中如何通过Content-Length或Chunked分块传输来对请求/响应进行拆包? ⭐
30 HTTP断点续传是如何实现的?Range请求头和206状态码是如何配合的? ⭐
31 为什么说HTTP协议不安全?具体存在哪些安全隐患? ⭐
32 HTTPS是如何通过数字证书和TLS加密来防范中间人攻击的? ⭐
33 HTTP建立TCP连接后,在什么情况下TCP连接会被中断? ⭐
34 HTTP、Socket和TCP三者之间有什么关系和区别? ⭐
35 既然有了HTTP协议,为什么还需要RPC协议?二者在什么场景下使用? ⭐
36 DNS的全称是什么?域名的层级结构是怎样的? ⭐
37 DNS服务默认使用的端口号是多少? ⭐
38 你修改过本地的hosts文件吗?它的作用是什么? ⭐
39 DNS协议底层使用TCP还是UDP进行传输?分别在什么情况下使用? ⭐
40 HTTP协议到底是无状态还是有状态的?为什么说它是无状态的? ⭐
41 携带Cookie的HTTP请求算是有状态还是无状态的? ⭐
42 如果客户端禁用了Cookie,Session还能正常工作吗?为什么? ⭐
43 浏览器的LocalStorage和Cookie有什么区别?分别在什么场景下使用? ⭐
44 JWT令牌由哪三个部分组成?每部分的作用和内容是什么? ⭐
45 JWT为什么能解决分布式集群环境下的身份认证问题? ⭐
46 JWT有哪些缺点和局限性? ⭐
47 JWT令牌万一泄露了怎么办?有哪些应对措施? ⭐
48 前端通常将JWT存储在哪里?各有什么安全考量? ⭐
49 Nginx支持哪些负载均衡算法?各自的特点和适用场景是什么? ⭐
50 Nginx工作在OSI七层模型中的哪一层?它和四层负载均衡有什么区别? ⭐
51 TCP报文头部有哪些关键字段?各自的作用是什么? ⭐
52 TCP三次握手中,如果客户端发送的第三个ACK报文丢失了,会发生什么? ⭐
53 服务端在发送第二次握手报文(SYN+ACK)后,连接进入什么状态? ⭐
54 TCP的三次握手和应用程序的accept()系统调用之间是什么关系? ⭐
55 TCP第一次握手时,客户端发送了SYN报文但服务器没有收到,会发生什么? ⭐
56 服务器回复的SYN+ACK报文在网络中丢失了,两端会如何处理? ⭐
57 服务端收到了一个重复的SYN报文,会怎么处理? ⭐
58 TCP第一次握手时,服务端在内核中做了哪些工作?半连接队列和全连接队列分别是什么? ⭐
59 SYN洪水攻击(SYN Flood)是什么?有哪些防御手段? ⭐
60 TCP四次挥手中,第二次挥手(ACK)和第三次挥手(FIN)能合并吗? ⭐
61 如果TCP四次挥手的第三次挥手(FIN)一直没发出去,会发生什么? ⭐
62 TCP挥手过程中,在第二次和第三次挥手之间,主动断开连接方还能发送数据吗? ⭐
63 TCP断开连接时,如果客户端发送的FIN包丢失了,服务端处于什么状态? ⭐
64 服务器上出现大量的TIME_WAIT状态连接,可能是什么原因?如何优化? ⭐
65 如何用UDP协议来实现类似HTTP的功能?HTTP/3(基于QUIC)是如何做到的? ⭐
66 大流量网站中,单台Redis无法承受压力了,你会如何设计和扩展? ⭐

📊 统计总览

专题 总题数 🔥高频 ⭐中频
Java基础 72 25 47
Java集合 40 12 28
多线程与并发 30 13 17
JVM内存与GC 34 11 23
Spring+MyBatis 44 11 33
MySQL数据库 91 23 68
Redis全栈 44 17 27
消息队列 36 12 24
分布式理论 19 6 13
系统设计与场景 14 5 9
计算机网络 66 21 45
合计 490 156 334

相关推荐
小羊没烦恼!3 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里3 天前
java中的继承和多态的区别
java
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕3 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖3 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时3 天前
01-06-A-JVM排查实战详解
java·jvm
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
晨米酱3 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
vipxieliang3 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot