Java 学习路线执行计划表(每周任务具体化)
大约 4 分钟
Java 学习路线执行计划表(每周任务具体化)
🎯 目标:系统掌握 Java 后端开发核心知识,夯实概念 + 实战能力
🧭 适合对象:能写业务但对核心原理不熟,如 IOC、AOP、事务、异常、多线程等
⏰ 周期:12 周,每天 1~2 小时
✅ 每周任务清单
第 1 周:Java 核心语法 + 面向对象
- 学习内容:
- 阅读:《Java 编程思想》第 1~2 章 或 狂神说 Java 基础前 5 集
- 视频学习:B 站狂神 Java 基础(语法 + 面向对象)
- 练习:
- 编写类:学生类 + 管理类,包含添加、删除、查找、排序方法
- 熟练使用 IDEA 创建项目、调试程序、使用 JavaDoc
- 每日任务示例:
- D1:变量/流程控制/数组,编写一个数组最大值函数
- D2:封装、继承、多态,写一个动物类继承关系 demo
- D3:接口、抽象类,模拟 USB 接口和不同实现类
第 2 周:异常处理 + 包装类 + JVM 内存模型
- 学习内容:
- 阅读 Java Guide:异常处理篇、Java 内存结构
- 练习:
- 自定义异常类:参数校验失败抛出异常
- 编写工具类:类型转换 + 自动装箱演示
- 使用 jvisualvm 查看运行时内存情况
- 每日任务:
- D1:try-catch-finally 使用 + 练习
- D2:throw/throws 区别 + 多层异常封装
- D3:封装一个工具类
AssertUtil抛出业务异常
第 3 周:IDEA + Maven + 工具类封装
- 学习内容:
- 安装 IDEA 插件:Lombok、CheckStyle、Alibaba Java Coding Guidelines
- 使用 Maven 创建标准项目,了解
pom.xml配置 - 编写工具类:
StringUtil:空判断、驼峰转下划线FileUtil:读取本地文件、复制文件
- 每日任务:
- D1:熟悉 Maven 项目结构 + 引入 hutool 工具类
- D2:用 Maven 引入 commons-lang3,使用 StringUtils
- D3:封装一个简易日志打印工具类
第 4 周:IOC 与依赖注入
- 学习内容:
- 阅读 Spring 官方文档 “What is Spring IoC”
- 视频:B站 黑马 IOC + 注解开发章节
- 实战:
- 搭建 Spring Boot Demo 项目
- 创建两个 Service,通过
@Autowired注入调用
- 每日任务:
- D1:理解 Bean 容器、用
@Component定义类 - D2:用
@Configuration + @Bean手动注册 Bean - D3:用构造方法注入 + Lombok + @RequiredArgsConstructor
- D1:理解 Bean 容器、用
第 5 周:AOP 和事务
- 学习内容:
- 了解横切逻辑、动态代理、Spring AOP 实现方式
- 使用
@Aspect实现日志打印 - 使用
@Transactional控制数据库事务,了解回滚条件
- 实战:
- 添加一个接口 + 日志切面,输出入参/响应
- 创建用户注册逻辑,在异常下自动回滚
- 用 try-catch 包裹事务代码,观察回滚与否
- 每日任务:
- D1:打印方法调用日志
- D2:模拟异常抛出 + 事务回滚
- D3:分析事务传播机制(REQUIRED、REQUIRES_NEW)
第 6 周:Spring Boot 快速开发
- 搭建简单 REST 接口项目
- 创建 REST Controller + Service + DTO 模型
- 参数校验
@Validated @NotBlank - 返回统一响应封装类(code/msg/data)
- 使用全局异常处理
@ControllerAdvice
- 实战:
- 完成一个“用户注册 + 查询接口”
- 本地跑通 + Postman 测试 + 异常情况覆盖
第 7 周:登录流程 + 安全认证
- 学习内容:
- 登录流程:输入账号密码 → 认证 → 签发 Token → 请求校验
- JWT 实现方式、过滤器、拦截器区别
- 使用 ThreadLocal 保存当前登录用户
- 实战:
- 登录接口:返回 JWT Token
- 拦截器验证 token,有效则放行并设置上下文
- 登录用户信息通过 ThreadLocal 传递到业务层
第 8 周:MyBatis 与 MyBatis-Plus
- 学习内容:
- 配置数据库、连接池 Druid、分页插件
- 编写实体类 + Mapper + XML/注解 SQL
- 用 Wrapper 实现多条件查询
- 实战:
- 实现用户分页查询 + 模糊搜索 + 创建/删除功能
- 编写 service 层 + 分页逻辑复用封装
第 9 周:Redis 缓存机制
- 学习内容:
- 使用 Redis Desktop Manager 查看数据
- 学习缓存三大问题:穿透、击穿、雪崩
- 封装缓存注解:支持过期、随机时间
- 实战:
- 缓存用户信息(模拟用户详情缓存)
- 手动缓存 + 缓存注解 + @Cacheable 封装
- 模拟缓存失效和重建
第 10 周:多线程与并发控制
- 学习内容:
- 多线程三种创建方式
- 线程同步与锁:synchronized、ReentrantLock
- 线程池 Executor + 异步任务 @Async
- 实战:
- 实现批量 Excel 导入时用线程池分片处理数据
- 输出日志验证线程并发执行
- 手动提交事务,模拟多线程写库
第 11 周:分页查询 + 异步任务 + 定时任务
- 分页查询:
- MyBatis-Plus
Page分页对象使用 - 自定义分页封装 PageResult
- MyBatis-Plus
- 异步任务:
- 开启线程池 + 使用
@Async异步方法执行
- 开启线程池 + 使用
- 定时任务:
- 使用
@Scheduled执行周期任务(如导入任务清理)
- 使用
- 实战:做一个“异步导入 Excel + 定时任务清理历史数据”的模块
第 12 周:项目整合 + 总结提升
- 项目整合:
- 整合用户模块 + 登录模块 + 缓存 + 分页 + 异步导入
- 自测接口 + JUnit 测试
- 总结:
- 复盘学过的 IOC、AOP、事务、缓存、多线程
- 整理一份“Java 后端核心知识脑图”
- 后续方向建议:
- 微服务(Spring Cloud)、分布式事务(Seata)
- 消息队列(RabbitMQ/Kafka)、Docker、DevOps