《Java 编程入门》目录

《Java 编程入门》全书导航页:说明本书定位、读者画像与前置知识,给出零基础、有语言基础、查漏补缺三条学习路径与八周计划,并按六个部分列出 18 章 54 节的完整章节索引,另含序、前言、附录 A–D 与常见问题速查,每一节都配一句话说明,方便按需定位与跳读。

《Java 编程入门》目录

这一页是全书的总入口。它不只列出章节标题,还给出三条可以照着走的阅读路径,以及每一节的定位说明。如果你不确定从哪开始,先读下面的「读者画像与前置知识」,再对照「学习路径」选一条;如果你已经有明确目标,可以直接跳到「分部分章节」按编号定位。

全书结构是:前置 3 篇 + 正文 18 章 54 节 + 附录 4 篇,共 61 篇。正文按学习曲线分为六个部分,每一部分解决一类问题。

如何使用本目录

这一页有三种用法,取决于你此刻的状态。

如果你刚拿到这本书,按顺序读「本书定位」「读者画像与前置知识」「学习路径」三节,用五分钟决定自己的入口章节。不要跳过这一步——Java 的入门资料遍地都是,但大部分是「片段式」的:讲一个语法、贴一段代码,然后让你自己去拼。这本书的价值在于顺序和项目语境,选错入口比读得慢更浪费时间。

如果你已经读到一半,想查某一节在哪,直接看「分部分章节」里对应部分的表格。每一行都有一句话说明,可以帮你确认是不是你要找的那一节,避免点进去再退出来的反复。

如果你把这本书当手册用,主要会用到「前置与附录」和每一节末尾的小结。附录 A 到 D 分别覆盖语法速查、标准库地图、版本差异与常见错误排查,是查阅频率最高的四篇。

本书定位

这是一本面向「已经会一门编程语言、但没有系统学过 Java」的读者的书。它的目标不是让你背下所有关键字,而是让你能独立写出一个结构清楚、能被测试、能打包运行的 Java 程序。

它有三个刻意的取舍。

第一,项目驱动,而不是语法清单。全书围绕 library(图书借阅系统)推进:卷一先做命令行版本,用内存存储;卷二把它长成 HTTP 服务;卷三拆开做并发与机制改造;卷四用同一服务做 JVM 观测。你看到的每个语法点,都会落到 library 的某个类或方法上。脱离项目语境的「Java 有八种基本类型」式罗列,本书尽量不写。

第二,示例可编译、输出是真实的。书中代码在 JDK 25 LTS(Temurin 25.0.5) 上实际编译和运行过,终端输出、报错信息都是真实结果,不是伪代码或「大致长这样」。凡是 JDK 21 与 25 行为不同的地方,会单独标注。

第三,只讲语言和标准库,不碰框架。卷一不引入 Spring、Lombok、Jackson 等依赖,目的不是排斥框架,而是先把「没有框架时你怎么把程序写对」这件事练熟。框架在《Spring Boot》三部曲里讲,本书与它是前后关系,不是替代关系。

如果你需要的是一份「30 分钟跑通 Hello World」的速成教程,第 3 章就能满足你,剩下的可以留着以后读;如果你希望一次把 Java 的地基打牢、之后不必反复回炉,那它的节奏是合适的。

读者画像与前置知识

不同类型的读者,起点和建议路径差别很大。可以先在下面找到最接近自己的那一类。

第一类:会 Python / JavaScript / Go,但没写过 Java。 你知道变量、循环、函数、类是什么,缺的是 Java 的语法细节、类型系统、集合框架和工程习惯。建议从第 1 章快速过到第 3 章,把工具链跑通,然后在第 4–12 章放慢速度,重点看泛型、集合和 Stream 的差异。并发和 JVM 可以留到卷三、卷四。

第二类:学过 Java 语法,但没写过完整项目。 你能看懂 for 循环和 class,但一让你从零搭工程就不知道从哪下手。建议跳过第 4–6 章的语法复习,从第 7 章开始,重点跟第 8–18 章的项目推进,尤其是第 13 章异常、第 16 章测试和第 17 章打包。

第三类:从 C / C++ 转过来。 你需要重点适应的是:没有手动内存管理、引用语义与值语义的边界、受检异常、泛型擦除、集合与 Stream 的抽象层次。第 4、6、11、13 章要细读,第 14 章 NIO 可以和你已有的 IO 经验对照。

第四类:只想查漏补缺。 直接看「分部分章节」的表格,按关键词跳到对应节。每节末尾都有小结和前后导航,跳读不会迷路。

前置知识只有两条:会用命令行(知道 cd、ls、环境变量),写过至少一门语言的完整程序(知道什么是函数、数组、循环)。不需要提前学 Maven、Git 或 Linux,书里会讲。

学习路径

路径一:零基础系统学(推荐,约 8 周)

周内容目标
第 1 周第 1–3 章装好 JDK 25 与 Maven,能编译运行第一个 library
第 2 周第 4–6 章掌握类型、控制流、方法,能写命令分发
第 3 周第 7–9 章掌握类、接口、record、enum、sealed
第 4 周第 10–12 章掌握集合、泛型、Stream,能实现搜索与统计
第 5 周第 13–15 章掌握异常、NIO、时间与正则,能读写数据文件
第 6 周第 16–17 章能写单元测试、打包可执行 jar
第 7 周第 18 章完成 CLI + REST 的完整项目
第 8 周附录 A–D + 回顾查漏补缺,把项目重写一遍

每周投入 8–10 小时。如果时间更少,把第 7 周拉长到两周,不要跳过第 16 章的测试。

路径二:有语言基础,快速过(约 3 周)

第 1–3 章用两天跑通工具链,第 4–6 章只读小结和代码示例,第 7–12 章正常读,第 13–18 章重点跟项目。适合已经会 Python/Go、需要在一两周内接手 Java 项目的人。

路径三:查漏补缺(按需)

直接跳到你需要的章节。三个高频入口:

  • 泛型看不懂 → 第 11 章。
  • 集合选型拿不准 → 第 10 章。
  • 异常设计混乱 → 第 13 章。
  • 测试不知道从哪写 → 第 16 章。
  • 打包运行报错 → 第 17 章 + 附录 D。

三条路径之外的三条提醒

  1. 不要跳过第 3 章。 工具链问题会伪装成语法问题,先确保 javac、java、mvn 三个命令都指向 JDK 25。
  2. 每节代码至少手敲一遍。 复制粘贴会漏掉编译错误,而编译错误是 Java 最好的老师。
  3. 不要提前引入框架。 卷一的 library 是故意「笨」的;等你亲手写过一遍内存仓储、参数校验和错误处理,再看 Spring 才知道它替你做了什么。

六个部分之间的依赖关系

第一部分 起步(1–3)
      ↓
第二部分 语言基础(4–6)
      ↓
第三部分 面向对象(7–9)
      ↓
第四部分 集合与泛型(10–12)
      ↓
第五部分 异常、IO 与常用库(13–15)
      ↓
第六部分 工程与交付(16–18)

这个顺序是有依赖的:第 10 章的集合需要第 9 章的 record 做元素类型;第 12 章的 Stream 需要第 11 章的泛型;第 18 章的完整项目需要第 8 章的接口、第 13 章的异常、第 14 章的 NIO 和第 16 章的测试。跳章可以,跳依赖不行。 如果你只想看第 18 章,至少先读第 8、9、10、13 章。

与本站 Java 专题的分工

本站的 Java 专题已经积累了约 90 篇文章,覆盖 JUC、JVM、GC 调优、Spring Boot、Spring Cloud、构建工具等单点主题。它们质量不低,但有一个共同特点:每一篇都假设你已经会 Java,然后带你在某个点上钻深。

这本书与它们的分工,靠的是顺序和项目语境。卷一的每一节都以 library 的推进为主线,语法点服务于项目:你不会看到「Java 有哪几种集合」这种脱离上下文的罗列,而会看到「图书检索该用 List 还是 Map、为什么」。也就是说,本书负责按顺序打地基,专题负责就一个问题钻到底,两者是互补关系。

需要特别说明的是并发和 JVM:卷一只写到「会用 synchronized 和线程池的基本 API」为止,JMM、AQS、虚拟线程、GC 算法、JIT 这些内容一律不写,留给卷三和卷四。如果你现在就想深挖,可以直接读本站的 Java 专题。

版本与示例约定

为了让全书保持一致的预期,这里先交代版本与示例的约定,后面每一节都默认你已经知道这些口径:

  • 本书主线是 JDK 25 LTS(Temurin 25.0.5),对照线是 JDK 21 LTS。书中代码在本机 JDK 25 上实测;21 与 25 行为不同的地方会单独标注。
  • 编译目标默认是 21。卷一使用的语法在 21 里都有,maven.compiler.release=21 可以产出能在 21 上运行的 class 文件;开发与运行用 25。
  • 卷一原则上只用标准库。java.base、java.logging、java.net.http、com.sun.net.httpserver 足以支撑全部示例;唯一例外是第 16 章的 JUnit 5。
  • 代码块都标语言:java 表示 Java 代码,bash 表示命令行,text 表示真实输出或报错原文,xml 表示 pom.xml,sql 表示 SQL。
  • 输出与代码分离:Java 代码块之后,紧跟着的 text 代码块是这段代码在本机跑出的真实输出,不是示意。没有真实运行过的内容会明确标注「示意」。
  • 不写未验证的性能数字。涉及性能的地方只给可复现的命令和测量方法,结论留给读者在自己的环境里验证。

分部分章节

第一部分:起步(第 1–3 章)

节标题一句话说明
1.1Java 解决了什么问题字节码与 JVM 如何提供跨平台能力,边界在哪
1.2JDK 25 LTS 与版本节奏六个月一个特性版、两年一个 LTS,怎么选
1.3JVM、JRE、JDK 与字节码三个缩写的边界,class 文件与执行引擎
2.1安装 JDK 25Temurin、PATH、JAVA_HOME 与版本核对
2.2Maven 与标准目录结构pom.xml、src/main/java 与资源目录
2.3IDE、JShell 与命令行三种反馈回路各自适合什么
3.1Hello, Libraryjavac 与 java 的完整流程
3.2包、模块与可见性包名、访问修饰符与 JPMS 的第一印象
3.3Maven 生命周期compile、test、package 三段式

第二部分:语言基础(第 4–6 章)

节标题一句话说明
4.1基本类型与包装类型范围、默认值、装箱代价与缓存
4.2var、final 与类型推断什么时候该用 var,什么时候不该
4.3运算符、溢出与数值边界整数不是数学,溢出是静默的
5.1if、for、while把流程写成可读的句子
5.2switch 表达式与 yield从语句到表达式,减少 fall-through
5.3instanceof 模式匹配类型判断不再强制转换
6.1方法签名、重载与可变参数重载解析顺序与可变参数的坑
6.2值传递的真相Java 只有值传递,引用传的是引用的值
6.3作用域、生命周期与栈帧局部变量、块作用域与调用栈

第三部分:面向对象(第 7–9 章)

节标题一句话说明
7.1类、字段与方法对象的第一个草图
7.2构造器、this 与初始化顺序字段、静态块、构造器谁先执行
7.3封装与不可变把变化关进笼子
8.1继承与 super复用不是目的,替代才是
8.2接口、default 方法与抽象类三种抽象的取舍
8.3多态与动态分派调用到底落到哪个实现
9.1record数据载体的最短写法
9.2enum把常量写成类型
9.3sealed 与模式匹配把继承关系封口

第四部分:集合与泛型(第 10–12 章)

节标题一句话说明
10.1List、Set、Map三种容器的选择
10.2复杂度与内存ArrayList、LinkedList、HashMap 的真实成本
10.3遍历、排序与比较器Collections、Comparator 与稳定排序
11.1泛型类与方法把类型当参数
11.2通配符与 PECSextends 与 super 的取舍
11.3类型擦除为什么不能 new T()
12.1Lambda 与函数式接口行为也能当参数
12.2Stream 管道map、filter、reduce 与惰性
12.3Optional 与惰性求值别把 null 包装成新问题

第五部分:异常、IO 与常用库(第 13–15 章)

节标题一句话说明
13.1受检与非受检异常异常分类的工程含义
13.2try-with-resources关闭顺序与抑制异常
13.3异常转换与用户可见错误内部异常怎么变成可读错误
14.1Path 与 Files比 File 更完整的文件 API
14.2字节流、字符流与编码编码是第一道坑
14.3目录遍历与 WatchService遍历、过滤与文件变更监听
15.1java.timeLocalDate、Instant 与时区
15.2String、StringBuilder 与文本块字符串拼接的成本与文本块
15.3正则表达式Pattern、Matcher 与 ISBN 校验

第六部分:工程与交付(第 16–18 章)

节标题一句话说明
16.1JUnit 5断言、生命周期与参数化
16.2测试替身Stub、Fake 与 Mock 的边界
16.3可测试性设计把依赖推到边界
17.1Maven 依赖、作用域与冲突compile、test、provided 怎么选
17.2可执行 jar 与模块化 jarjar、shade、jlink 的取舍
17.3版本与可复现构建依赖锁定、时间戳与构建缓存
18.1需求与领域模型借阅、归还、查询的边界
18.2内存仓储与 CLI 交互把前 17 章拼成一个可用的 CLI
18.3用标准库暴露 REST 接口com.sun.net.httpserver 与 JSON

前置与附录

篇目内容
序为什么写这套书,以及它和 Spring Boot 三部曲的关系
前言读者对象、写作约定、示例环境与验证方式
附录 A 语法速查类型、控制流、类、泛型、异常、IO 的一页速查
附录 B 标准库地图java.base 常用包与类的定位
附录 C 21→25 版本差异从 JDK 21 到 25 的正式特性与迁移提示
附录 D 常见编译与运行错误按报错关键词查原因与处理

常见问题速查

「我该装 JDK 还是 JRE?」 装 JDK。从 JDK 11 起不再单独分发 JRE;生产环境也建议装 JDK,或用 jlink 裁运行时。

「JDK 25 和 21 的代码能互相跑吗?」 高版本编译的 class 不能直接在低版本 JVM 上跑。用 --release 21 可以把目标降到 21。

「为什么 mvn -version 和 java -version 不一致?」 Maven 用了另一个 JAVA_HOME。先对齐这两个值,再排查其他问题。

「卷一为什么不用 Spring?」 因为这本书要先把「没有框架时怎么把程序写对」练熟。Spring 在《Spring Boot》三部曲里讲。

「代码跑不通怎么办?」 先看附录 D 的报错关键词表;再看对应章节的「常见错误」小节;最后用 jshell 把可疑片段单独跑一遍。

「需要学 Git 吗?」 需要,但不在本书范围。你至少要知道 git clone、git status、git commit。

读完本书之后

卷一结束时,你应该能独立完成:

  • 用 Maven 建一个标准 Java 工程,写 pom.xml、分模块、管依赖。
  • 用 record/enum/sealed 表达领域模型,用接口隔离仓储。
  • 用集合、泛型、Stream 完成搜索、排序、统计。
  • 用异常体系表达业务错误,用 NIO 读写数据文件。
  • 用 JUnit 5 写单元测试,用 JUnit 参数化覆盖边界。
  • 打出可执行 jar,知道 jlink/jpackage 能做什么。

接下来可以走三条路:

  1. 《Java 编程实战》:把 library 长成 libraryd HTTP 服务,引入 JDBC、连接池、JSON、日志、测试容器与容器化部署。
  2. 《Java 高级编程》:深入泛型擦除、反射、字节码、JMM、JUC、虚拟线程与结构化并发。
  3. 《Java 虚拟机原理与性能调优》:用 JFR、GC 日志、堆转储分析同一套服务。

如果只想先补框架,可以读《Spring Boot 入门》;但建议至少先完成卷一的第 8–13 章,否则很多「Spring 帮你做了」的事情会变成魔法。

小结

  • 全书 61 篇:18 章 54 节 + 序/前言/目录 + 附录 A–D。
  • 六个部分按依赖递进,跳章可以,跳依赖不行。
  • 主线 JDK 25 LTS,编译目标 21,卷一只用标准库(第 16 章 JUnit 除外)。
  • library 是贯穿项目:卷一 CLI,卷二服务,卷三机制改造,卷四运行时观测。
  • 书负责顺序和项目语境,Java 专题负责单点深度,两者互补。
  • 三条路径:零基础 8 周、有基础 3 周、查漏补缺按需。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「java」更多文章

  1. 《Netty 高性能网络编程》15.3 linkd-v2 验收与复盘
  2. 《Netty 高性能网络编程》15.2 限流、超时与降级
  3. 《Netty 高性能网络编程》15.1 网关路由与转发