Skip to content

学习计划

约 3915 字大约 13 分钟

2025-12-24

核心目标

将MySQL、Redis、RocketMQ、JVM、并发、Spring生态(Spring/SpringBoot/SpringCloud)等零散知识点串联成体系,聚焦“原理+应用+问题排查”,适配面试高频考点与工作实战需求,每天固定2小时,循序渐进构建知识框架。

整体规划逻辑

  1. 先夯实基础(JVM+并发):作为Java核心底层,支撑所有上层框架的理解;
  2. 再攻数据存储(MySQL+Redis):业务核心依赖的数据层技术,聚焦“存储原理+性能优化”;
  3. 接着突破中间件(RocketMQ):解决分布式系统异步、解耦问题,重点掌握“可靠性+故障处理”;
  4. 最后串联Spring生态(Spring→SpringBoot→SpringCloud):从基础框架到微服务架构,形成“开发→部署→治理”全链路认知;
  5. 每周预留1天复盘,每2周1次模拟面试/真题演练,强化知识吸收。

详细周计划(每天2小时,可根据个人进度微调)

第一阶段:底层基础夯实(第1-2周)—— JVM+并发编程

第1周:JVM深度攻坚(聚焦“内存+GC+调优”)

日期核心内容学习方式与资源
周一JVM内存模型(程序计数器、虚拟机栈、本地方法栈、堆、方法区)+ 对象创建/销毁流程1. 看《深入理解Java虚拟机》第2-3章;2. 画内存模型图,标注各区域作用与OOM场景;3. 结合简历中JVM调优案例反推原理
周二垃圾回收机制(GC算法:标记-清除/复制/标记-整理/分代收集)+ 垃圾收集器(G1/CMS)1. 对比不同GC算法优缺点;2. 记录G1与CMS的适用场景、参数配置(对应简历中“调整JVM参数保障高并发稳定”)
周三类加载机制(双亲委派模型、类加载流程、自定义类加载器)1. 拆解类加载全过程,理解双亲委派的意义;2. 思考“破坏双亲委派的场景”(面试高频)
周四JVM调优实战(内存溢出/泄漏排查、GC日志分析、常用调优参数)1. 学习jps/jstat/jmap/jstack工具使用;2. 分析简历中“GC停顿从500ms降至150ms”的调优逻辑
周五JVM常见面试题梳理(如:OOM原因分类、MinorGC与FullGC触发条件、G1调优关键参数)1. 整理错题本;2. 用自己的话复述原理,避免死记硬背
周六周复盘:绘制JVM知识脑图(内存模型→GC→类加载→调优)1. 补全遗漏知识点;2. 结合项目中JVM调优案例,标注“原理→应用”关联点
周日真题演练:做10道JVM高频面试题(如字节/阿里面试真题),查漏补缺1. 重点关注“调优场景题”;2. 总结答题逻辑(现象→原因→解决方案→效果)

第2周:并发编程体系化(聚焦“线程模型+锁+并发工具”)

日期核心内容学习方式与资源
周一并发基础(线程与进程区别、线程状态、创建方式、上下文切换)1. 看《Java并发编程实战》第1-2章;2. 结合操作系统基础理解“上下文切换开销”
周二锁机制(synchronized底层实现、Lock接口(ReentrantLock/ReadWriteLock)、AQS原理)1. 对比synchronized与Lock的优缺点;2. 画AQS核心结构(双向链表+状态变量)
周三并发工具类(CountDownLatch/CyclicBarrier/Semaphore/ConcurrentHashMap)1. 逐个掌握工具类的适用场景;2. 分析ConcurrentHashMap的扩容机制与线程安全保障
周四线程池原理(ThreadPoolExecutor核心参数、工作流程、拒绝策略)1. 结合简历中“调整线程池参数提高接口性能”,理解参数设计逻辑;2. 区分Fixed/Cached/Scheduled线程池
周五并发问题(线程安全、可见性/原子性/有序性、死锁排查与避免)1. 学习jstack排查死锁的方法;2. 总结“如何保证线程安全”的3种思路(锁、无状态、原子类)
周六周复盘:绘制并发编程知识脑图(基础→锁→工具→线程池→问题排查)1. 关联JVM:线程与虚拟机栈的对应关系;2. 标注项目中用到的并发技术(如Redisson分布式锁)
周日真题演练:做10道并发高频面试题(如:线程池参数设计、AQS原理、死锁排查)1. 重点回答“结合项目经验”类问题;2. 总结答题框架

第二阶段:数据存储核心(第3-4周)—— MySQL+Redis

第3周:MySQL深度攻坚(聚焦“索引+事务+调优”)

日期核心内容学习方式与资源
周一MySQL架构(连接器、查询缓存、分析器、优化器、执行器)+ InnoDB存储引擎1. 看《高性能MySQL》第1-2章;2. 理解“SQL执行全流程”,为调优打基础
周二索引原理(B+树结构、聚簇索引与非聚簇索引、联合索引、覆盖索引)1. 画B+树结构示意图,解释“为什么B+树适合数据库索引”;2. 结合简历中“索引重构优化千万级查询”
周三事务与隔离级别(ACID、四大隔离级别、MVCC原理)1. 验证不同隔离级别下的并发问题(脏读/不可重复读/幻读);2. 理解MVCC如何实现隔离级别
周四SQL调优实战(慢查询日志、explain分析、索引优化、表结构设计)1. 学习explain各字段含义;2. 结合简历中“15亿级数据分表优化”,梳理分表分库思路
周五MySQL高级特性(主从复制、读写分离、分表分库、国产数据库适配)1. 理解主从复制的原理(binlog+relaylog);2. 结合简历中“人大金仓/达梦数据库迁移适配”,总结适配要点
周六周复盘:绘制MySQL知识脑图(架构→索引→事务→调优→高级特性)1. 关联并发:事务隔离级别与并发问题的关系;2. 标注项目中MySQL优化案例
周日真题演练:做10道MySQL高频面试题(如:索引设计、SQL调优、MVCC原理)1. 重点回答“千万级/亿级数据优化”类问题;2. 结合简历项目举例

第4周:Redis体系化学习(聚焦“数据结构+持久化+集群+缓存策略”)

日期核心内容学习方式与资源
周一Redis核心数据结构(String/Hash/List/Set/ZSet)+ 底层实现1. 看《Redis设计与实现》第3-5章;2. 对比各数据结构的适用场景(如ZSet用于排行榜)
周二持久化机制(RDB vs AOF、混合持久化)+ 内存淘汰策略1. 分析不同持久化方案的优缺点;2. 结合简历中“Redis集群缓存高频数据”,理解内存淘汰配置
周三缓存策略(缓存穿透/击穿/雪崩、解决方案)+ Redisson高级功能1. 关联简历中“布隆过滤器解决缓存穿透”“分布式锁解决资源互斥”;2. 总结3类缓存问题的解决方案
周四Redis集群(主从复制、哨兵模式、Cluster集群)1. 理解Cluster分片原理(哈希槽);2. 分析集群下的高可用与数据一致性保障
周五Redis实战(缓存更新策略、分布式锁、延时队列)1. 结合项目中“Redis缓存工程基础信息”,设计缓存更新方案;2. 理解Redisson分布式锁的实现
周六周复盘:绘制Redis知识脑图(数据结构→持久化→集群→缓存策略→实战)1. 关联MySQL:缓存与数据库的一致性方案(如先更库后删缓存);2. 标注项目中Redis应用场景
周日真题演练:做10道Redis高频面试题(如:缓存问题、分布式锁、持久化选择)1. 重点回答“结合项目经验”类问题;2. 总结答题逻辑

第三阶段:中间件与消息队列(第5周)—— RocketMQ

第5周:RocketMQ深度攻坚(聚焦“架构+可靠性+实战”)

日期核心内容学习方式与资源
周一RocketMQ架构(Producer、Broker、Consumer、NameServer)+ 消息流转流程1. 看RocketMQ官方文档;2. 画消息发送→存储→消费的全流程
周二消息可靠性保障(生产者确认、Broker持久化、消费者确认、重试机制)1. 结合简历中“通过确认机制+死信队列解决消息可靠性问题”;2. 理解“消息不丢失”的3个环节
周三消息类型(普通消息、事务消息、延时消息、顺序消息)+ 适用场景1. 区分不同消息类型的实现原理;2. 思考项目中“状态同步”用事务消息的逻辑
周四RocketMQ集群(主从架构、多副本、负载均衡)1. 理解Broker主从复制机制;2. 分析Producer/Consumer的负载均衡策略
周五常见问题排查(消息丢失、重复消费、消息积压)1. 结合简历中“解决第三方服务数据同步滞后问题”;2. 总结排查思路(日志→监控→配置)
周六周复盘:绘制RocketMQ知识脑图(架构→消息类型→可靠性→集群→问题排查)1. 关联微服务:RocketMQ在分布式系统中的解耦、削峰作用;2. 标注项目中应用场景
周日真题演练:做8道RocketMQ高频面试题(如:消息可靠性、重复消费处理、事务消息)1. 结合项目中“用RocketMQ实现异步通信”举例;2. 总结答题框架

第四阶段:Spring生态全家桶(第6-7周)—— Spring→SpringBoot→SpringCloud

第6周:Spring+SpringBoot深度攻坚(聚焦“核心原理+实战”)

日期核心内容学习方式与资源
周一Spring核心原理(IOC容器、Bean生命周期、依赖注入、AOP)1. 看《Spring实战》第2-3章;2. 手动实现简单IOC容器,理解依赖注入原理
周二Spring AOP深度(动态代理、切面、通知、切入点表达式)1. 区分JDK动态代理与CGLIB代理;2. 结合简历中“自定义注解+AOP实现数据过滤”
周三Spring事务管理(声明式事务、编程式事务、事务传播机制、隔离级别)1. 理解“自调用不触发事务”的原因;2. 结合项目中“Seata分布式事务”,关联Spring事务
周四SpringBoot核心(自动配置原理、Starter机制、配置文件、Actuator监控)1. 分析SpringBoot自动配置的实现(@EnableAutoConfiguration);2. 结合简历中“自定义文件存储Starter”
周五SpringBoot实战(异常处理、拦截器、过滤器、统一封装)1. 设计“全局异常处理+统一返回结果”方案;2. 理解拦截器与过滤器的区别
周六周复盘:绘制Spring+SpringBoot知识脑图(Spring核心→事务→AOP→SpringBoot自动配置→实战)1. 关联JVM:Spring Bean与JVM对象的关系;2. 标注项目中框架应用问题及解决方案
周日真题演练:做10道Spring生态面试题(如:Bean生命周期、AOP原理、自动配置)1. 重点回答“框架应用问题”(如简历中“解决事务未生效问题”);2. 总结答题逻辑

第7周:SpringCloud微服务体系(聚焦“组件+架构+治理”)

日期核心内容学习方式与资源
周一微服务架构基础(微服务定义、优缺点、拆分原则)+ SpringCloud核心组件概览1. 结合简历中“微服务拆分”,理解拆分依据(单一职责、低耦合);2. 梳理组件间关系
周二服务注册与配置(Nacos:服务发现、配置管理、动态刷新)1. 理解Nacos与Eureka/Consul的区别;2. 结合简历中“Nacos支撑数百项配置稳定运行”
周三服务通信与网关(OpenFeign:服务调用、负载均衡;Spring Gateway:路由、过滤)1. 学习OpenFeign的熔断降级配置;2. 结合简历中“Spring Gateway实现路由与安全保障”
周四分布式事务(Seata AT模式原理、事务协调流程、补偿机制)1. 理解“AT模式基于本地事务+undo_log”的实现;2. 结合简历中“Seata保障跨服务数据一致性”
周五服务容错与监控(Resilience4j:熔断、降级、限流;Grafana+Prometheus监控)1. 结合简历中“Resilience4j实现API限流”,理解容错策略;2. 学习监控指标设计
周六周复盘:绘制SpringCloud知识脑图(架构→注册配置→通信网关→事务→容错监控)1. 关联前面技术:微服务=SpringBoot+分布式组件(Redis/RocketMQ/Seata);2. 标注项目中微服务架构设计
周日真题演练:做10道SpringCloud面试题(如:微服务拆分、分布式事务、服务容错)1. 重点回答“架构设计”类问题;2. 结合简历中“微服务架构落地”举例

第五阶段:体系整合与冲刺(第8周)—— 跨技术串联+面试冲刺

日期核心内容学习方式与资源
周一跨技术串联:分布式系统核心问题(一致性、可用性、容错性)1. 梳理“分布式系统=微服务+Redis+RocketMQ+Seata”的协同逻辑;2. 分析项目中如何保障高可用
周二跨技术串联:高并发架构设计(缓存分层、异步化、限流降级、分库分表)1. 结合简历中“日均100万+API请求处理”,梳理架构设计思路;2. 画高并发架构图
周三项目经验梳理:将所有技术点与项目绑定(如:MySQL调优→15亿级数据优化)1. 按项目整理“技术选型→问题→解决方案→效果”;2. 准备每个项目的3个核心技术亮点
周四面试高频场景题演练(如:设计秒杀系统、缓存与数据库一致性、分布式锁实现)1. 按“需求→架构→技术选型→问题解决”思路答题;2. 结合所学技术栈给出方案
周五错题本复盘:回顾前7周错题,重点攻克薄弱知识点(如:MVCC、AQS、Seata原理)1. 用自己的话复述原理;2. 标注易混淆点(如:synchronized与Lock的区别)
周六全套模拟面试:找朋友或线上平台进行1小时模拟面试,覆盖所有技术栈1. 记录回答不流畅的地方;2. 优化答题逻辑与语速
周日最终复盘:完善知识脑图,补充遗漏点,调整心态1. 确保每个技术栈的核心知识点无盲区;2. 准备“自我介绍+项目亮点+技术总结”话术

学习资源推荐

  1. 书籍:《深入理解Java虚拟机》《Java并发编程实战》《高性能MySQL》《Redis设计与实现》《Spring实战》;
  2. 视频:B站“尚硅谷Java架构师”系列(JVM/并发/MySQL/Redis/SpringCloud)、RocketMQ官方视频教程;
  3. 工具:Xmind(画脑图)、LeetCode(真题演练)、GitHub(查看开源项目源码);
  4. 面试题:《Java面试宝典》《JavaGuide》(GitHub)、牛客网Java高频面试题。

关键执行原则

  1. 每天2小时固定时段(如晚8-10点),拒绝碎片化学习;
  2. 每学习1个知识点,必须“理解原理+动手实践”(如:学索引就用explain分析SQL,学线程池就写demo测试);
  3. 强制输出:每周画脑图、做笔记,避免“假性学会”;
  4. 关联项目:所有知识点都要对应到简历中的项目,面试时能快速调用“技术+场景”的组合答案。
贡献者: yunze