Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

阶段二: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 的差异笔记,覆盖语法、内存和字符串处理