阶段二:Java 基础与进阶
阶段说明
- 学习周期:9 周
- 建议投入:每天 2-3 小时,每周学习 6 天,复盘和休息 1 天
- 前置要求:已完成阶段一,具备 C 语言和数据结构基础
- 阶段目标:建立面向对象思维,掌握 Java 核心语法与进阶特性(集合进阶、函数式、多线程、反射注解动态代理),能够使用 Maven 组织工程并独立完成控制台版学生信息管理系统
本阶段已完成一次压缩:原本 11 周的安排合并为 9 周,第 1 周把 C 语言已覆盖的语法和循环、方法、数组一起速通,第 6 周把 Maven、JUnit 与集合进阶合并。压缩的原则是减少重复讲解和重复练习,不删减知识点。
数据库、JDBC、网络编程和 Linux 基础安排在阶段三(后端进阶),紧接本阶段之后、与 Spring Boot 相邻学习,避免学完长时间不用。
主要学习资料
Java 统一参考黑马程序员的《Java 零基础视频教程》。第 1-5 周按上部分 P 顺序学习到结束;第 6 周使用下部的高级特性(JUnit)和集合进阶章节,第 7-9 周按下部章节顺序学习。
视频仅用于学习知识点和编码思路,不要求下载课程源码、笔记或其他配套素材,也不要求完成视频中的案例项目。所有练习统一围绕阶段项目(学生信息管理系统)的需求展开。
已掌握 C 语言的内容用 1.5-2 倍速快进,只在 Java 特有的地方停下写代码;不要逐 P 平均用力。下部与上部重复的异常、File、IO 章节直接跳过,只补递归遍历、打印流和 commons-io。
Maven 参考视频待定,确定课程后再补充章节映射。下半部中的 XML/Dom4j/XPath、UDP 与聊天室案例、其他设计模式不作为本阶段主线:XML 和网络编程留到阶段三用到时再补,设计模式只学单例、工厂和装饰。
表中的分 P 范围和章节名是参考区间,实际以课程目录为准。
阶段成果
完成本阶段后,应能够:
- 独立安装 JDK 和开发工具,创建、编译并运行 Java 程序
- 使用变量、类型、运算符、分支、循环、方法和数组编写程序
- 使用类、对象、封装、继承、多态、抽象类和接口组织代码
- 使用 String、StringBuilder、集合体系、异常处理完成数据处理
- 使用 File、字符流、缓冲流和对象序列化完成文件读写与数据持久化
- 使用集合嵌套、
Comparable、Comparator和Collections处理排序与分组 - 使用 Lambda、方法引用和 Stream 完成过滤、映射、分组和统计
- 使用多线程、锁和线程池处理并发任务并说明线程安全问题
- 使用反射、注解和动态代理完成通用增强,并理解框架的底层机制
- 使用 Maven 管理依赖、组织分层包结构、执行单元测试并打包运行
- 使用 Git 按功能拆分提交,形成连续的开发记录
- 独立讲解学生信息管理系统的分层结构、数据流和核心实现
周计划
| 周次 | 学习主题 | 视频范围 | 本周成果 | 详细计划 |
|---|---|---|---|---|
| 第 1 周 | 环境 + 基础语法速通(含循环、方法、数组) | 上部 P1-P60 | 完成控制台版学生成绩统计器 | 查看计划 |
| 第 2 周 | 面向对象(类 / 对象 / 封装) | 上部 P61-P95 | 使用类和对象重写成绩统计器 | 查看计划 |
| 第 3 周 | 继承 / 多态 / 抽象类 / 接口 | 上部 P96-P130 | 完成系统的领域模型和接口设计 | 查看计划 |
| 第 4 周 | 常用类 + 异常 + 集合 | 上部 P131-P170 | 完成内存版学生信息管理系统 | 查看计划 |
| 第 5 周 | IO 流 + 文件持久化 + 项目收尾 | 上部 P171-末尾 | 完成学生信息管理系统 JavaSE 版(阶段验收) | 查看计划 |
| 第 6 周 | Maven、JUnit 与集合进阶 | 下部 JUnit、集合进阶;Maven 待定 | 项目 Maven 化、测试可执行、数据层重构 | 查看计划 |
| 第 7 周 | Lambda、方法引用与 Stream | 下部 函数式 & JDK8+ | 使用 Stream 重写查询和统计 | 查看计划 |
| 第 8 周 | 多线程与线程池 | 下部 多线程 | 完成并发批量导入并验证线程安全 | 查看计划 |
| 第 9 周 | 反射 / 注解 / 动态代理与项目收尾 | 下部 高级特性、设计模式 | 完成 mini IOC/AOP 版项目并做阶段复盘 | 查看计划 |
进度控制
- 第 1 周是唯一允许“快进”的一周:如果 C 语言相关内容已经很清楚,把练习减到第 4、5、7 题,省出的时间留给第 2、3 周的面向对象。
- 第 6 周任务量最大,时间不够时把
TreeMap、Set进阶顺延到第 7 周,但 Maven 和 JUnit 必须当周完成。 - 第 9 周是全程最难的一周。如果时间不足,mini AOP 可以只做示例,把 mini IOC 保留下来,其余设计模式内容留到阶段三读 Spring 源码时再补。
阶段验收
项目:控制台版学生信息管理系统
- 第 5 周交付 JavaSE 版本(集合 + 文件持久化),作为本阶段的验收版本
- 第 6-9 周在验收版本上继续升级:Maven 化与单元测试、集合进阶、Stream 重构、多线程批量处理、反射注解动态代理实现 mini IOC/AOP
- 阶段三再用 MySQL + JDBC + MyBatis-Plus 替换文件持久化,并补充 Web 层
- 使用 Java 编写,界面为控制台菜单,不使用 Spring 等框架,不使用前端页面
- 代码按
ui、service、dao、entity、util、exception等包分层组织 - 使用 Git 管理开发过程,每完成一个功能进行一次独立提交
- 仓库必须包含项目说明文档,说明功能、运行方式和数据文件格式
- 详细功能要求见第 5 周计划,升级要求见第 9 周计划
阶段完成清单
- 完成 Java 课程上部 P1-末尾
- 完成下部集合进阶、函数式、多线程和高级特性章节
- 能够使用类和对象组织代码,不再把所有逻辑写在
main方法里 - 能够使用继承、多态、抽象类和接口设计类的层次
- 能够使用集合、异常和 IO 流处理数据并持久化到文件
- 能够使用集合嵌套、
Comparable和Comparator完成排序与分组 - 能够使用 Lambda、方法引用和 Stream 完成过滤、映射、分组和统计
- 能够说明线程安全问题,并使用锁、原子类或线程池解决
- 能够使用反射创建对象和读取注解,并使用动态代理增强方法
- 完成学生信息管理系统 JavaSE 版并通过自查
- 能够使用 Maven 组织项目、管理依赖、执行测试并打包运行
- 完成 mini IOC/AOP 版项目并通过自查
- 项目具有清晰、连续的 Git 提交记录和完整 README
- 能够独立讲解项目的分层结构、数据流和核心实现
- 整理一份 Java 与 C 的差异笔记,覆盖语法、内存和字符串处理