为什么写这份文档?
市面上的 Java 教程已经很多了——视频、博客、书籍、开源项目、官方文档,琳琅满目。但如果你曾经认真找过资料,你大概率会遇到这些问题:
- 基础教程与企业实际脱节:教你
Hello World之后就讲 SpringBoot,但跳过了大量"为什么需要这样做"的解释 - 企业级规范散落各处:阿里规约、Spring 最佳实践、设计模式... 没有一份系统化的中文教程把它们串起来
- 代码示例不可运行:很多博客的代码片段复制下来根本跑不通
- 没有"为什么":只告诉你要这么写,但不告诉你为什么企业级项目里要这么写
这份文档就是为了解决这些问题而诞生的。
本教程的特色
✅ 每行代码都注释
java
public class HelloWorld { // ① 类名必须与文件名完全一致
public static void main(String[] args) { // ② main 方法是 Java 程序的固定入口
System.out.println("Hello, World!"); // ③ println = print line,会自动换行
} // ④ 静态方法可以直接通过类名调用
}代码块左侧的行号注释(// ①)告诉你这一行的设计意图,不是解释语法。
✅ "为什么这样写"卡片
关键设计决策都有专门的卡片解释,例如:
为什么用 private 修饰成员变量?
封装(Encapsulation)是 OOP 的核心思想。private 把数据藏在类内部,对外只暴露受控的 getter/setter, 这样既能保护数据完整性(setter 里加校验),又能在未来自由修改内部实现而不影响调用方。
✅ 完整可运行示例
每个章节配套独立可运行的小项目,位于 examples/ 目录下,复制下来就能跑:
bash
cd examples/hello-java
javac HelloWorld.java
java HelloWorld
# 输出:Hello, World!✅ 配套完整实战项目
第 78-90 章会带你从零搭建一个完整的 RBAC 权限管理系统,包含:
- 用户 / 角色 / 菜单 / 部门 / 字典 9 大模块
- Docker Compose 一键起所有依赖
- GitHub Actions 完整 CI/CD
- 接口文档自动部署
- 代码生成器、监控告警、操作日志... 企业项目该有的都有
✅ 强调"坑"和"反模式"
每个章节都有「常见坑」小节,告诉你新手最容易踩的雷:
不要这样写
java// ❌ 错误:自动装箱 + == 比较 Integer a = 100; Integer b = 100; System.out.println(a == b); // true,但实际是因为 IntegerCache Integer c = 200; Integer d = 200; System.out.println(c == d); // false!踩坑!应该用
equals()比较包装类。
本教程不包含什么
为了控制篇幅和聚焦重点,以下内容不在本教程第一批次范围内:
- ❌ 框架源码深度剖析(如 Spring Bean 生命周期完整源码)
- ❌ 算法与数据结构(推荐配套《算法》第四版)
- ❌ 计算机基础(操作系统、网络、数据库系统原理)
- ❌ 软技能(沟通、文档、Code Review 文化)
这些会在你掌握本教程内容后,自然成为下一步学习目标。
写给读者的话
如果你能每天投入 1-2 小时,跟着章节动手敲代码、做练习题,10-12 周可以完成全部 90 章。
如果你只能周末学习,可能需要 4-6 个月。无论哪种节奏,都不要赶进度——理解比完成更重要。
学习过程中遇到任何问题,欢迎:
- 在每篇文章底部留言
- 提交 GitHub Issue
- 加入技术交流群(详见 README)
最后,送给你一句 Java 社区广为流传的话:
"Write once, run anywhere. 这不仅是 Java 的口号,也是我们对工程质量的追求——一次认真写好,处处复用。"
祝学习愉快!
下一步:怎么阅读最高效 →