每天投入 1 到 1.5 小时,利用 30 天时间集中攻克核心考点,以下是具体的时间安排和执行技巧。
如果时间紧迫,建议优先复习 Java SE、Spring、MySQL、Redis、JVM 及计算机网络等基础模块,再着手准备项目场景题。
整体策略:按高频考点优先级分层突击
核心原则
- 抓大放小:优先攻克大厂高频模块(Java 并发、JVM、Spring、MySQL、Redis),这些模块通常占面试题的 70% 以上。
- 真题驱动:每个模块先刷追问型真题,例如从'讲讲 AQS 原理'延伸到'ReentrantLock 怎么用 AQS 实现',再到'锁升级过程是怎样的',以此培养深度答题思维。
- 输出倒逼输入:每天尝试用费曼学习法口述 3 道题答案,用手机录音回听,及时修正逻辑漏洞。
30 天详细时间规划
阶段一:核心模块攻坚(第 1-18 天,每天 1.5 小时)
目标:掌握 Java 核心 + 框架 + 数据库的 80% 高频题,形成自己的答题模板。
第一周:Java 基础和集合
Day1-2:Java 基础(数据类型、异常体系、反射) 刷 10 道基础题,重点理解自动装箱拆箱原理,以及 String、StringBuilder、StringBuffer 的区别。
Day3-4:集合框架(List/Set/Map 底层实现) 对比 ArrayList 与 LinkedList 的适用场景,尝试手写 HashMap.put() 流程(基于 JDK 1.8)。
Day5-6:并发容器(ConcurrentHashMap、CopyOnWriteArrayList) 背诵 ConcurrentHashMap 从分段锁到 CAS 再到红黑树的演进逻辑。
Day7:周末复盘 用表格总结集合类线程安全对比及常用方法的时间复杂度。
第二周:Java 并发和 JVM
Day8-9:线程与锁(synchronized/ReentrantLock/AQS) 重点记忆 synchronized 锁升级过程,以及 AQS 的双向链表加状态位设计。
Day10-11:并发工具类(CountDownLatch/CyclicBarrier/Semaphore) 对比三者适用场景,可以用'多线程下载文件合并'举例说明 CountDownLatch 的实际用法。
Day12-13:JVM 内存模型(堆 / 栈 / 方法区) 重点掌握对象创建过程、GC 分代回收机制以及 STW 发生场景。
Day14:JVM 调优 记录常用命令(jmap/jstack/jstat),背诵线上 OOM 排查步骤。
第三周:Spring 和 MySQL
Day15-16:Spring 基础(IOC/AOP 原理) 区分 BeanFactory 与 ApplicationContext,理解 AOP 实现方式(JDK 动态代理 / CGLIB)。
Day17-18:Spring 进阶(事务管理、Bean 生命周期) 手写 @Transactional 失效场景清单,背诵 Bean 实例化→初始化→销毁的全流程。
Day19-20:MySQL 基础(索引类型、事务隔离级别) 重点记忆索引失效条件,以及可重复读如何避免幻读(MVCC 原理)。
Day21-22:MySQL 优化(慢查询分析、分库分表) 熟悉 explain 执行计划关键字段(type/key/rows),背诵分库分表路由策略(哈希 / 范围 / 组合)。
阶段二:扩展模块突破(第 19-26 天,每天 1 小时)
第四周:Redis、操作系统和网络
Day23-24:Redis 数据结构(String/Hash/List/ZSet) 背诵 ZSet 跳表实现原理,对比 Redis 持久化 RDB 与 AOF 的差异。
Day25-26:Redis 进阶(分布式锁、缓存穿透 / 击穿 / 雪崩) 记录 Redisson 实现分布式锁的步骤,以及缓存雪崩解决方案(加随机 TTL / 多级缓存)。

