《Java 面试指南》
一、高频考点(必考)
以下为中大型厂 Java 后端面试中最稳定、高频的考点,按重要性排序整理。
| 科目 | 权重 | 核心考察内容 |
|---|---|---|
| MySQL | ★★★★★ | 索引(B+树、覆盖索引、联合索引)、事务隔离级别、锁机制(行锁、间隙锁、MVCC)、慢查询优化、分库分表 |
| Redis | ★★★★★ | 数据结构、缓存策略(穿透/击穿/雪崩)、分布式锁、限流、持久化、集群(Sentinel/Cluster) |
| Java 并发编程 | ★★★★☆ | synchronized 原理、volatile、AQS、线程池参数调优、JUC 工具类、CAS、内存模型 |
| Java 集合框架 | ★★★★☆ | HashMap 1.8、ConcurrentHashMap、ArrayList/LinkedList、HashSet 底层实现 |
| Java 基础 | ★★★★ | 面向对象、泛型、反射、注解、异常处理、String/StringBuilder、equals 与 == |
| Spring / Spring Boot | ★★★★ | IOC/AOP 原理、循环依赖、自动装配、事务传播机制、启动流程、常用注解 |
| MyBatis | ★★★☆☆ | #{} 与 ${} 区别、动态 SQL、一二级缓存、插件机制、与 Spring 集成原理、SQL 注入防范 |
优先级:
MySQL + Redis ≥ Java 并发 > Java 集合 + 基础 > Spring/Spring Boot + MyBatis
备注:中大厂对并发编程的考察深度显著增加,常涉及底层源码(AQS、锁升级、线程池拒绝策略等)。Spring 与 MyBatis 在中小厂考察频率较高,但深度一般不及数据库、Redis 与并发。
二、条件性高频考点(根据目标公司与简历决定投入)
1. 消息队列(MQ)
- 定位:中高级岗位高频加分项,尤其在分布式系统设计题中频繁出现。
- 推荐复习程度:简历提及 Kafka/RocketMQ/RabbitMQ 者必须深入掌握。
- 高频考点:
- 使用场景(异步解耦、削峰填谷、最终一致性)
- 消息可靠性(不丢失、不重复消费、顺序性)
- 幂等设计、ACK 机制、死信队列、消息积压处理
- 主流 MQ 选型对比(Kafka 高吞吐、RocketMQ 事务消息、RabbitMQ 灵活路由)
- 事务消息与延迟消息
2. JVM
- 定位:大厂及优质中厂重点考察,小厂可选。
- 常考内容:
- 运行时内存区域与对象分配
- 垃圾回收算法与收集器(G1、ZGC)
- 类加载器与双亲委派模型
- JVM 调优与线上问题排查(Full GC、OOM 等)
3. 分布式 / 微服务 / 高并发
- 定位:中高级岗位常见,校招要求较低。
- 重点方向:
- 分布式 ID 生成方案
- 分布式锁实现(Redis vs ZooKeeper)
- 限流、熔断、降级(Sentinel)
- 微服务核心组件(注册发现、配置中心、链路追踪)
- CAP/BASE 理论与最终一致性
三、大厂面试侧重差异
| 公司类型 | 主要侧重方向 |
|---|---|
| 阿里系 | 项目深度 + 八股文原理 + 系统设计 |
| 字节系 | 算法 + 计算机基础 + 并发与系统设计(代码手撕题较多) |
| 腾讯/美团 | 并发 + MySQL/Redis + 项目工程实践 |
| 中小厂 | 八股文广度 + 项目经验,深度要求较低 |
四、备考方法与策略建议
- 优先级策略:先攻克 MySQL + Redis,再重点突破并发与集合,最后补充 Spring、MyBatis、MQ、JVM。
- 项目驱动学习:将知识点与简历项目紧密结合,避免孤立记忆。
- 高效学习方法:注重原理理解、方案对比与实际场景应用。
- 自测与复盘:
- 用自己的语言清晰讲解每个知识点
- 针对简历每个技术栈准备面试官追问预案
- 定期回顾(建议7天一小轮,15天一大轮)
- 实践建议:多练习系统设计题(如秒杀系统、订单处理),并综合运用 MQ、Redis、MySQL。