模块设计
| 序号 | 模块名称 | 英文路径 | 教学目标 |
|---|---|---|---|
| 1️⃣ | 语言机制与语法基础 | language-fundamentals | 理解语言核心语法和运行逻辑 |
| 2️⃣ | 抽象与模块化设计 | abstraction-design | 掌握封装、抽象和模块化能力 |
| 3️⃣ | 数据结构与算法 | data-structures-algorithms | 掌握常用数据结构与算法思维 |
| 4️⃣ | 输入输出与系统交互 | io-system-interaction | 学习文件、网络、标准IO及序列化机制 |
| 5️⃣ | 异常处理与调试技巧 | exception-debugging | 掌握异常传播、调试和日志 |
| 6️⃣ | 内存管理与性能优化 | memory-performance | 理解资源使用和性能调优 |
| 7️⃣ | 并发与异步编程 | concurrency-async | 理解并发模型和任务调度 |
| 8️⃣ | 生态与工具链 | ecosystem-toolchain | 掌握包管理、构建工具和IDE生态 |
| 9️⃣ | 测试与持续集成 | testing-ci | 构建高质量代码和交付体系 |
| 🔟 | 综合项目实战 | hands-on-projects | 整合所有模块知识进行实战 |
模块 1️⃣:语言机制与语法基础 (language-fundamentals)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| Java简介与开发环境 | introduction-setup | 了解Java特性、JVM原理、安装JDK、配置环境变量、Hello World |
| 基础语法 | basic-syntax | 掌握变量、常量、标识符命名规则、关键字、注释、代码结构 |
| 数据类型 | data-types | 理解基本数据类型(8种)、包装类、字面量、类型转换、自动装箱拆箱 |
| 运算符 | operators | 掌握算术、关系、逻辑、位、赋值、三元运算符,运算符优先级 |
| 控制流语句 | control-flow | 熟练使用if-else、switch、for、while、do-while、break、continue、return |
| 数组 | arrays | 掌握一维数组、多维数组、数组初始化、遍历、Arrays工具类 |
| 字符串处理 | strings | 理解String不可变性、常用方法、StringBuilder/StringBuffer、字符串池 |
| 方法定义与调用 | methods | 掌握方法声明、参数传递(值传递)、重载、可变参数、递归 |
模块 2️⃣:抽象与模块化设计 (abstraction-design)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| 面向对象基础 | oop-basics | 理解类与对象、封装、构造方法、this关键字、对象创建过程 |
| 封装与访问控制 | encapsulation | 掌握private/public/protected/default访问修饰符、getter/setter |
| 继承 | inheritance | 理解extends、方法重写、super关键字、Object类、继承链 |
| 多态 | polymorphism | 掌握向上转型、动态绑定、instanceof、多态的三个条件 |
| 抽象类 | abstract-classes | 理解abstract关键字、抽象方法、抽象类的设计意图 |
| 接口 | interfaces | 掌握接口定义、实现、多实现、接口常量、默认方法、静态方法 |
| 内部类 | inner-classes | 理解成员内部类、局部内部类、匿名内部类、静态内部类 |
| 枚举类型 | enumerations | 掌握enum定义、枚举方法、构造器、抽象方法、EnumSet/EnumMap |
| 包与模块 | packages-modules | 理解package、import、CLASSPATH、Java 9模块系统基础 |
| Lambda表达式 | lambda-expressions | 掌握函数式接口、Lambda语法、方法引用、构造器引用 |
| 泛型编程 | generics | 理解泛型类、泛型方法、类型擦除、通配符(? extends/super)、泛型限制 |
| 注解 | annotations | 掌握内置注解、自定义注解、元注解、注解处理 |
模块 3️⃣:数据结构与算法 (data-structures-algorithms)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| 集合框架概述 | collections-overview | 理解Collection和Map体系、迭代器模式、集合选择策略 |
| List接口与实现 | list-implementations | 掌握ArrayList、LinkedList、Vector的原理、性能对比、使用场景 |
| Set接口与实现 | set-implementations | 掌握HashSet、LinkedHashSet、TreeSet的原理、去重机制、排序 |
| Queue与Deque | queue-deque | 理解队列接口、PriorityQueue、ArrayDeque、LinkedList作为队列 |
| Map接口与实现 | map-implementations | 掌握HashMap、LinkedHashMap、TreeMap、Hashtable的原理与使用 |
| Collections工具类 | collections-utilities | 掌握排序、查找、同步包装、不可变集合、算法方法 |
| 比较与排序 | comparison-sorting | 理解Comparable、Comparator、自定义排序、稳定性 |
| 数据结构实现 | custom-data-structures | 学习手动实现栈、队列、链表、二叉树、哈希表 |
| 算法基础 | algorithm-basics | 掌握时间复杂度、空间复杂度、常见算法思想(递归、分治、贪心、动态规划) |
| 常用算法实战 | common-algorithms | 实现排序算法、查找算法、字符串算法、图算法基础 |
模块 4️⃣:输入输出与系统交互 (io-system-interaction)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| File与Path操作 | file-path-operations | 掌握File类、Path接口、Files工具类、文件属性、目录操作 |
| 字节流 | byte-streams | 理解InputStream/OutputStream体系、FileInputStream/FileOutputStream、缓冲流 |
| 字符流 | character-streams | 掌握Reader/Writer体系、FileReader/FileWriter、字符编码转换 |
| 缓冲流与转换流 | buffered-conversion-streams | 理解BufferedReader/Writer、InputStreamReader/OutputStreamWriter |
| 对象序列化 | serialization | 掌握Serializable接口、ObjectInputStream/OutputStream、transient关键字、版本控制 |
| NIO基础 | nio-basics | 理解Channel、Buffer、Selector、非阻塞IO模型 |
| 标准输入输出 | standard-io | 掌握System.in/out/err、Scanner、PrintStream、格式化输出 |
| 网络编程基础 | networking-basics | 理解TCP/UDP、Socket编程、ServerSocket、URL/URLConnection |
| HTTP客户端 | http-client | 掌握HttpURLConnection、Java 11 HttpClient、RESTful API调用 |
| JSON与XML处理 | json-xml-processing | 学习Gson/Jackson库、DOM/SAX/StAX解析、数据交换格式 |
模块 5️⃣:异常处理与调试技巧 (exception-debugging)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| 异常体系 | exception-hierarchy | 理解Throwable、Error、Exception、受检异常与非受检异常 |
| 异常处理机制 | exception-handling | 掌握try-catch-finally、多重catch、try-with-resources |
| 异常抛出与声明 | throwing-exceptions | 理解throw、throws、异常链、自定义异常 |
| 常见异常类型 | common-exceptions | 熟悉NullPointerException、IndexOutOfBoundsException、ClassCastException等 |
| 最佳实践 | exception-best-practices | 掌握异常处理原则、日志记录、异常转换、资源清理 |
| 断言 | assertions | 理解assert关键字、启用断言、使用场景 |
| 日志框架 | logging-frameworks | 掌握java.util.logging、SLF4J、Log4j2、日志级别、配置 |
| 调试技巧 | debugging-techniques | 学习IDE调试器使用、断点、变量监视、调用栈分析 |
| 单元测试调试 | unit-test-debugging | 掌握JUnit测试调试、Mock对象调试、集成测试问题定位 |
模块 6️⃣:内存管理与性能优化 (memory-performance)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| JVM内存模型 | jvm-memory-model | 理解堆、栈、方法区、程序计数器、本地方法栈 |
| 垃圾回收机制 | garbage-collection | 掌握GC原理、分代回收、常见GC算法(标记-清除、复制、标记-整理) |
| 垃圾收集器 | garbage-collectors | 了解Serial、Parallel、CMS、G1、ZGC收集器的特点 |
| 内存泄漏与排查 | memory-leaks | 识别常见内存泄漏场景、使用工具(VisualVM、MAT)分析 |
| 引用类型 | reference-types | 理解强引用、软引用、弱引用、虚引用的使用场景 |
| JVM参数调优 | jvm-tuning | 掌握堆大小配置、GC日志分析、常用JVM参数 |
| 性能分析工具 | profiling-tools | 学习JProfiler、YourKit、Arthas等工具的使用 |
| 代码性能优化 | code-optimization | 掌握算法优化、数据结构选择、避免不必要的对象创建 |
| 并发性能优化 | concurrency-optimization | 理解锁优化、无锁编程、减少锁竞争策略 |
| 字符串与集合优化 | string-collection-optimization | 掌握StringBuilder使用、集合初始容量设置、避免自动装箱 |
模块 7️⃣:并发与异步编程 (concurrency-async)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| 线程基础 | thread-basics | 理解线程概念、Thread类、Runnable接口、线程状态、生命周期 |
| 线程同步 | thread-synchronization | 掌握synchronized关键字、对象锁、类锁、死锁问题 |
| wait/notify机制 | wait-notify | 理解线程通信、wait/notify/notifyAll、生产者消费者模式 |
| volatile关键字 | volatile-keyword | 理解内存可见性、禁止指令重排序、volatile的使用场景 |
| Lock接口 | lock-interface | 掌握ReentrantLock、读写锁、Condition、tryLock |
| 原子类 | atomic-classes | 理解CAS原理、AtomicInteger/Long/Reference、原子更新器 |
| 线程池 | thread-pools | 掌握Executor框架、ThreadPoolExecutor、常见线程池类型、参数配置 |
| 并发集合 | concurrent-collections | 理解ConcurrentHashMap、CopyOnWriteArrayList、BlockingQueue |
| CountDownLatch与CyclicBarrier | synchronization-utilities | 掌握线程协调工具、Semaphore、Exchanger |
| Future与CompletableFuture | future-completable-future | 理解异步任务、Callable、Future模式、CompletableFuture链式调用 |
| Fork/Join框架 | fork-join-framework | 掌握分治并行算法、ForkJoinPool、RecursiveTask/Action |
| 并发编程最佳实践 | concurrency-best-practices | 学习线程安全策略、避免死锁、性能与安全平衡 |
模块 8️⃣:生态与工具链 (ecosystem-toolchain)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| Maven构建工具 | maven-build-tool | 掌握Maven项目结构、pom.xml配置、依赖管理、生命周期、插件 |
| Gradle构建工具 | gradle-build-tool | 理解Gradle DSL、build.gradle配置、任务定义、多模块项目 |
| 依赖管理 | dependency-management | 掌握依赖坐标、版本管理、依赖冲突解决、仓库配置 |
| IDE使用精通 | ide-mastery | 熟练使用IntelliJ IDEA/Eclipse、快捷键、重构工具、调试技巧 |
| 版本控制 | version-control | 掌握Git基础、分支管理、代码合并、GitHub/GitLab工作流 |
| 代码规范与质量 | code-quality | 理解代码风格、Checkstyle、SpotBugs、SonarQube静态分析 |
| 常用工具库 | utility-libraries | 学习Apache Commons、Guava、Hutool等工具库的使用 |
| Spring框架生态 | spring-ecosystem | 了解Spring Framework、Spring Boot、Spring Cloud基础概念 |
| 数据库访问 | database-access | 掌握JDBC、连接池(HikariCP)、JPA/Hibernate、MyBatis基础 |
| 文档生成 | documentation | 学习Javadoc编写、Swagger/OpenAPI、Markdown文档 |
模块 9️⃣:测试与持续集成 (testing-ci)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| 单元测试基础 | unit-testing-basics | 理解测试金字塔、单元测试原则、测试驱动开发(TDD) |
| JUnit 5 | junit5 | 掌握@Test、断言、生命周期注解、参数化测试、嵌套测试 |
| Mockito框架 | mockito-framework | 学习Mock对象创建、when/then、verify、spy、参数匹配器 |
| 测试覆盖率 | test-coverage | 理解覆盖率指标、JaCoCo工具、提高覆盖率策略 |
| 集成测试 | integration-testing | 掌握Spring Test、TestContainers、数据库测试、API测试 |
| 性能测试 | performance-testing | 学习JMH基准测试、压力测试、性能瓶颈分析 |
| 持续集成 | continuous-integration | 理解CI/CD概念、Jenkins/GitLab CI配置、自动化构建 |
| 持续部署 | continuous-deployment | 掌握自动化部署流程、Docker容器化、Kubernetes基础 |
| 测试最佳实践 | testing-best-practices | 学习可测试性设计、测试数据管理、测试维护策略 |
模块 🔟:综合项目实战 (hands-on-projects)
| 章节名称 | 英文路径 | 教学目标 |
|---|---|---|
| 项目规划与架构设计 | project-planning | 学习需求分析、架构设计、技术选型、模块划分 |
| 控制台应用项目 | console-application | 开发学生管理系统、图书馆系统等,综合运用基础知识 |
| 多线程应用项目 | multithreaded-application | 实现生产者消费者、线程池任务调度、并发下载器 |
| 网络编程项目 | networking-project | 开发聊天室、文件传输工具、简单HTTP服务器 |
| Web应用项目 | web-application | 使用Spring Boot开发RESTful API、前后端分离应用 |
| 数据库应用项目 | database-project | 开发完整的CRUD应用、事务处理、数据持久化 |
| 微服务项目 | microservices-project | 学习服务拆分、服务间通信、配置中心、服务发现 |
| 性能优化实战 | performance-optimization-practice | 对实际项目进行性能分析、瓶颈定位、优化实施 |
| 代码重构实战 | refactoring-practice | 学习识别代码坏味道、重构技巧、设计模式应用 |
| 项目部署与运维 | deployment-operations | 掌握应用打包、服务器部署、监控告警、日志分析 |
学习路径建议
- 初学者:按模块1→2→3→4→5顺序,完成前5个模块后可独立开发简单应用
- 进阶学习:模块6→7深入理解JVM和并发,为高性能应用打基础
- 工程实践:模块8→9学习现代Java开发的工具链和工程化方法
- 综合提升:模块10通过项目实战巩固所有知识点
0