Skip to content

Java 面试刷题清单 ​

17 篇、近 700 道题,覆盖 Java 后端面试的高频考点(含 AI 大模型方向)。 每篇结构一致:前面是整理版(带 ★ 评级,可直接背)→ 后面是折叠起来的原始题库(旧题原文,查漏补缺时再展开)。 练习题原理在 Java 笔记目录,两边每篇都做了互链。

怎么用这份清单 ​

  1. 按篇刷:先看下面的索引,卡在哪一块就回对应的知识点笔记补深,再回来刷题。
  2. 看星级:★★★ 要能流畅讲两分钟,★★☆ 能说清要点,★☆☆ 有印象即可。
  3. 面试前一晚:只看各篇文末的「一句话速记」+ 下方 30 题清单。
  4. 挂钩简历:标了【简历亮点,高频追问】的题,面试官会顺着简历问,别背答案、要背自己的项目口径。

常问等级说明 ​

  • ★★★ = 高频必考(几乎每次面试都会问到,务必能流畅作答)
  • ★★☆ = 中频常见(多数面试会涉及,建议掌握)
  • ★☆☆ = 低频了解(时间有限可快速过一遍,能说个大概即可)

前端转全栈重点:Java 基础里的值传递、final、类初始化顺序、Java 8 新特性、集合选型;多线程的 synchronized 与 Lock 区别、sleep 与 wait 区别;计算机网络里的跨域 CORS。这些是前端背景最容易卡壳、面试官又爱问的。

17 篇索引 ​

#篇题数核心考点配套知识点
01Java 语法与面向对象38equals/hashCode、String、泛型擦除、值传递、四种引用、BigDecimal01 Java 基础
02Java 集合与泛型19ArrayList、HashMap 源码、ConcurrentHashMap、fail-fast、Stream02 Java 核心特性
03异常、IO 与反射20异常体系、try-with-resources、BIO/NIO/AIO、反射、深浅拷贝02 Java 核心特性
04JVM41内存区域、GC 与收集器、类加载、JMM、OOM 排查、JITJVM 深入
05多线程与并发74锁升级、AQS、线程池、CAS、ThreadLocal、CompletableFuture06 JUC 并发编程
06Spring 全家桶92IOC/AOP、事务、SpringBoot、MyBatis、SpringCloud04 框架技术栈、MyBatis-Plus
07MySQL65B+ 树索引、索引失效、MVCC、锁、explain、分库分表MySQL 深入
08中间件(Redis / MQ)67缓存三兄弟、持久化、集群、分布式锁、消息可靠性Redis、消息队列
09Zookeeper 与 RPC40ZAB 选主、watch、ACL、Dubbo、SPISpring Cloud 微服务
10ElasticSearch26倒排索引、mapping、refresh/flush、深分页、选主、Canal 同步、向量检索Elasticsearch
11计算机网络39TCP 握手挥手、HTTP 演进、HTTPS、跨域、DNSNetty(粘包/拆包)
12分布式与高并发55CAP、分布式事务、ID、限流熔断、幂等、场景设计Spring Cloud 微服务
13算法与设计模式23排序、二分、手撕链表/LRU、23 种设计模式设计模式
14工具运维67Git、Maven、Linux、Nginx、Tomcat、安全、线上排查Arthas、CI/CD
15软实力与 HR 面试14简历、自我介绍、项目口径、谈薪、反问—(无对应知识点,配套看口述稿)
16AI 与大模型22LLM/幻觉、RAG 进阶、Prompt 注入、流式、成本、MCP、模型路由04 框架技术栈 · 8. Spring AI
17Netty11Reactor 三模式、核心组件、粘包拆包、零拷贝、线程模型Netty

同栏目还有两套独立材料:Java 口述稿(全栈 / 前端)和 AI Agent 专题(15 篇,Agent 原理 / RAG / 工具调用 / 多智能体 / STAR 面试稿)——AI Agent 面试专题。它们都是面试材料,不挂在上面「配套知识点」列里。

面试前一晚:30 题清单 ​

只看这些,能讲清就够。

  • [ ] == 与 equals、hashCode 契约(01)
  • [ ] String 不可变、常量池、intern(01)
  • [ ] 值传递(前端转全栈必考,01)
  • [ ] HashMap 底层原理与扩容(02)
  • [ ] ConcurrentHashMap 1.7 与 1.8 的区别(02)
  • [ ] JVM 内存区域划分、哪些会 OOM(04)
  • [ ] GC 算法与 G1 工作流程(04)
  • [ ] 类加载过程与双亲委派(04)
  • [ ] JMM 与内存屏障(04)
  • [ ] synchronized 原理与锁升级(05)
  • [ ] volatile 与 happens-before(05)
  • [ ] AQS 原理、ReentrantLock 公平/非公平(05)
  • [ ] 线程池七大参数、拒绝策略、为什么不用 Executors(05)
  • [ ] ThreadLocal 原理与内存泄漏(05)
  • [ ] CAS 与 ABA 问题(05)
  • [ ] IOC、DI 与 Bean 生命周期(06)
  • [ ] 循环依赖与三级缓存(06)
  • [ ] AOP 原理、JDK 代理 vs CGLIB(06)
  • [ ] @Transactional 失效场景与传播行为(06)
  • [ ] SpringBoot 自动配置原理(06)
  • [ ] #{} 与 ${} 区别(06)
  • [ ] B+ 树索引、最左前缀、覆盖索引(07)
  • [ ] 索引失效的几种场景(07)
  • [ ] MVCC 与隔离级别(07)
  • [ ] 行锁、间隙锁、临键锁(07)
  • [ ] 缓存穿透、击穿、雪崩(08)
  • [ ] Redis 分布式锁与 Redisson 看门狗(08)
  • [ ] 消息不丢、不重、不乱序(08)
  • [ ] TCP 三次握手、四次挥手(11)
  • [ ] 分布式事务方案对比:2PC / TCC / Saga / 本地消息表(12)

附录:常问题清单(旧版 12 类,按主题快速扫题) ​

下面是拆篇之前的原始归类,适合「扫一眼看看有没有漏」,具体答案以上面 17 篇为准。

一、Java 基础 ​

  • 基本数据类型和包装类区别、Integer 缓存机制、自动装箱拆箱 ★★★
  • 面向对象三大特性、抽象类和接口区别 ★★★
  • String / StringBuilder / StringBuffer 区别;String 不可变原理、常量池、intern() ★★★
  • ArrayList / LinkedList 底层实现、扩容机制 ★★★
  • HashMap 底层原理,1.7 与 1.8 区别;红黑树转换条件;扰动函数;扩容机制 ★★★
  • ConcurrentHashMap 1.7 与 1.8 实现区别 ★★★
  • Hashtable 与 HashMap 对比 ★★☆
  • 异常体系、受检/非受检异常、try-finally / try-with-resources ★★★
  • 泛型原理、泛型擦除;?、? extends、? super 通配符 ★★★
  • 反射机制、获取 Class 对象的几种方式、反射优缺点 ★★★
  • 注解、元注解、自定义注解 ★★☆
  • BIO / NIO / AIO 区别;Buffer、Channel ★★★
  • == 与 equals、hashCode 契约 ★★★
  • 深拷贝与浅拷贝、序列化 serialVersionUID ★★☆
  • BigDecimal 与浮点精度 ★★★
  • 四种内部类 ★☆☆
  • 枚举原理 ★★☆
  • 函数式接口、Lambda、Stream ★★★
  • 值传递与引用传递(前端转全栈必考)★★★
  • final、finally、finalize 区别 ★★★
  • Object 类常用方法 ★★☆
  • 类初始化顺序、静态变量/代码块 ★★☆
  • Comparable 与 Comparator 区别 ★★☆
  • Java 8 新特性汇总、Optional ★★★
  • 集合框架选型总结 ★★★
  • fail-fast 与 fail-safe ★★☆
  • JDK 版本演进 8/11/17/21、虚拟线程 ★★☆

二、JVM ​

  • JVM 内存区域划分、各区域作用、哪些会 OOM ★★★
  • 对象创建过程、对象内存布局、对象头 ★★☆
  • 如何判断对象是垃圾;四种引用(强/软/弱/虚)★★★
  • GC 三大算法:标记清除、复制、标记整理 ★★★
  • 常见垃圾收集器:Serial、Parallel、CMS、G1、ZGC ★★★
  • 类加载全过程、双亲委派模型、破坏双亲委派 ★★★
  • OOM 常见场景、jmap、jstack 工具作用 ★★★
  • 逃逸分析、栈上分配 ★★☆
  • JVM 常用调优参数 ★★☆
  • JMM 与 JVM 内存模型的区别 ★★★
  • 元空间 vs 永久代、字符串常量池位置 ★★☆
  • 直接内存 ★★☆
  • 三色标记、对象进入老年代条件、STW ★★☆

三、多线程并发 ​

  • 线程状态、创建线程的几种方式、start() 和 run() 区别 ★★★
  • synchronized 底层原理、锁升级过程(偏向锁-轻量级-重量级)★★★
  • volatile 作用、可见性/原子性/有序性、happens-before ★★★
  • AQS 原理、ReentrantLock 公平/非公平锁、Condition ★★★
  • ThreadPoolExecutor 七大参数、四种拒绝策略、为什么不推荐 Executors ★★★
  • 线程池参数如何按业务设置、核心线程/空闲线程 ★★★
  • CountDownLatch / CyclicBarrier / Semaphore ★★★
  • ConcurrentHashMap、CopyOnWriteArrayList 原理 ★★★
  • 死锁四个条件、如何避免死锁、活锁、饥饿 ★★★
  • 线程安全问题产生原因 ★★☆
  • ThreadLocal 原理与内存泄漏 ★★★
  • CAS 原理与 ABA 问题 ★★★
  • 原子类 AtomicInteger、LongAdder ★★☆
  • CompletableFuture 异步编排 ★★★
  • JMM 内存屏障、指令重排 ★★☆
  • BlockingQueue、线程中断 interrupt ★★☆
  • synchronized 与 ReentrantLock 区别(前端转全栈必考)★★★
  • sleep() 与 wait() 区别 ★★★
  • volatile 与 synchronized 区别 ★★☆
  • wait/notify 线程协作机制 ★★☆

四、Spring 全家桶 ​

  • IOC 容器原理、Bean 完整生命周期 ★★★
  • Bean 作用域、BeanFactory 与 ApplicationContext 区别 ★★★
  • AOP 原理:JDK 动态代理、CGLIB、五种通知类型 ★★★
  • @Transactional 传播行为、隔离级别、事务失效场景、实现原理 ★★★
  • SpringBoot 自动配置原理、条件注解、启动流程 ★★★
  • 全局异常处理 ★★★
  • @Configuration、@Bean ★★☆
  • SpringMVC 请求流程、Filter 与 Interceptor 区别、@RequestParam 与 @RequestBody ★★★
  • Nacos/Eureka、Feign、Gateway、Sentinel、分布式事务 ★★★
  • @Autowired 与 @Resource 区别 ★★★
  • 三级缓存解决循环依赖 ★★★
  • AOP 失效场景(同类调用)★★☆
  • Spring 用到的设计模式 ★★☆
  • Spring Boot Starter 机制、MyBatis #{} 与 ${} ★★★
  • Spring、SpringBoot、SpringCloud 区别(前端转全栈必考)★★★
  • Spring Security 鉴权链路(JWT 过滤器链)★★★
  • MyBatis 一级缓存、二级缓存 ★★★
  • MyBatis 执行流程 ★★☆
  • MyBatis-Plus 相比 MyBatis 的优势 ★★☆

五、MySQL ​

  • InnoDB 索引 B+ 树结构、聚簇/非聚簇索引 ★★★
  • 联合索引最左前缀、索引失效场景 ★★★
  • 事务 ACID、四种隔离级别、MVCC ★★★
  • redo log、undo log、binlog ★★★
  • InnoDB 锁机制:行锁、表锁、意向锁、间隙锁、幻读 ★★★
  • explain 字段含义、慢查询优化 ★★★
  • 主从复制、读写分离、分库分表 ★★★
  • 索引下推 ICP、覆盖索引 ★★☆
  • 为什么用 B+ 树不用 B 树/哈希/跳表 ★★☆
  • count(*) 优化、深分页 ★★★
  • 三大范式、InnoDB vs MyISAM ★★☆
  • 隐式类型转换导致索引失效 ★★☆

六、中间件 ​

Redis ​

  • 常用数据结构及使用场景 ★★★
  • RDB 与 AOF 持久化对比 ★★★
  • 过期淘汰策略 ★★★
  • 缓存穿透、缓存击穿、缓存雪崩 ★★★
  • 分布式锁实现及问题 ★★★
  • 哨兵、集群模式 ★★★
  • 底层数据结构(SDS、跳表、listpack 等)★★☆
  • 为什么快(单线程、IO 多路复用、内存)★★★
  • 大 key、热 key ★★☆
  • 缓存一致性(延迟双删、Canal)★★★
  • 布隆过滤器、Bitmap/HyperLogLog/GEO ★★☆
  • Redis 6.0 多线程 ★★☆

MQ(RabbitMQ / Kafka / RocketMQ) ​

  • 使用消息队列的好处、场景 ★★★
  • 消息丢失、重复消费、积压处理 ★★★
  • RabbitMQ 交换机类型、Kafka 高可用 ★★★
  • 各 MQ 对比选型 ★★☆
  • 顺序消息、事务消息、延迟消息、死信队列 ★★☆

七、计算机网络 ​

  • HTTP1.1 / HTTP2 / HTTP3 区别 ★★★
  • HTTPS 加密原理、TLS 握手 ★★★
  • GET 与 POST 区别 ★★★
  • Cookie / Session / Token 区别 ★★★
  • TCP 三次握手、四次挥手、为什么不能两次握手 ★★★
  • TCP 滑动窗口、拥塞控制、TCP 与 UDP 区别 ★★★
  • 常见 HTTP 状态码 ★★☆
  • OSI 七层 / TCP/IP 四层模型 ★★★
  • 输入 URL 到页面展示全流程 ★★★
  • DNS 解析、Session 共享、JWT 结构 ★★★
  • 跨域 CORS 原理与解决方案(前端转全栈必考)★★★

八、分布式 & 高并发 ​

  • CAP、BASE 理论 ★★★
  • 分布式事务:2PC、3PC、TCC、SAGA、本地消息表、可靠消息最终一致性 ★★★
  • 分布式 ID 生成方案 ★★★
  • 接口幂等性设计 ★★★
  • 限流、熔断、降级实现方式 ★★★
  • 限流算法(计数器/滑动窗口/令牌桶/漏桶)★★★
  • 负载均衡算法、一致性哈希 ★★★
  • 分布式锁方案对比(Redis/ZK/DB)★★★
  • 链路追踪 ★★☆

九、项目实战、算法、设计模式 ​

  • 项目中最难技术点、怎么解决 ★★★
  • 线上 CPU 飙升、OOM、接口超时排查 ★★★
  • 手写单例模式(懒汉、饿汉、双重校验锁)★★★
  • 常见设计模式、Spring 用到哪些 ★★☆
  • 算法:链表反转、二分查找、两数之和、栈队列 ★★★
  • 排序算法 ★★★
  • 设计模式六大原则(SOLID、开闭、里氏替换)★★☆

十、工具 & 运维 ​

  • Git 常用命令、merge 与 rebase ★★☆
  • Maven 依赖冲突 ★★☆
  • Docker 基础概念 ★★☆
  • Linux 常用命令:进程、日志、端口、内存 CPU ★★★
  • XSS、CSRF、密码加密 ★★★
  • SQL 注入、越权 ★★★
  • 线上排查完整流程、线程 dump 分析 ★★★
  • JVM 调优参数、日志框架、监控体系 ★★☆

十一、AI 与大模型 ​

  • 大模型基础概念:LLM、Token、上下文窗口、Temperature ★★★
  • 大模型幻觉(Hallucination)★★★
  • 提示词工程 Prompt Engineering ★★☆
  • RAG 检索增强生成原理 ★★★
  • 向量数据库(Milvus/pgvector/Redis Vector)★★★
  • Function Calling / Tool Use / Agent ★★★
  • 模型微调(SFT、LoRA、RLHF)★★☆
  • Spring AI 框架 ★★★
  • SSE 流式输出(前端转全栈必考)★★★
  • Token 计数与成本控制 ★★☆
  • 多轮对话记忆管理 ★★☆
  • 超时、重试、降级、内容安全 ★★☆

十二、Netty ​

  • Netty 是什么、设计哲学 ★★★
  • Netty 相比传统 Java 网络编程(BIO/NIO)的优势 ★★★
  • Reactor 模型:单线程、多线程、主从多线程 ★★★
  • 核心组件:Channel、EventLoop、ChannelPipeline、ChannelHandler、ByteBuf、Bootstrap ★★★
  • ChannelPipeline 作用、入站出站 handler 执行顺序 ★★★
  • TCP 粘包/拆包解决 ★★★
  • Netty 高性能表现在哪些方面 ★★★
  • Netty 零拷贝技术如何实现 ★★★
  • Netty 线程模型如何设计 ★★★
  • Netty 典型应用场景 ★★☆