Java特性索引(JDK 8 → 25)
按特性名称快速定位 - 覆盖从基础语法到最新JDK 25特性的完整路径
📋 使用说明
- 按特性名称搜索:使用 Ctrl+F 查找特定特性
- 按JDK版本筛选:查看每个特性首次引入的版本
- 按章节定位:跳转到对应章节文件深入学习
🏗️ 基础语法核心特性(第1-16章)
01 - Java概述与环境搭建
- JVM/JDK/JRE模型 -
01/JDK-JRE-JVM详解.md - 编译型vs解释型 -
01/解释型与编译型对比.md - IDE与开发环境 -
01/IDE介绍.md
02 - 标识符与基本数据类型
- 基本类型与包装类 -
02/基本类型与包装类.md - 类型转换规则 -
02/类型转换.md - 变量与常量定义 -
02/变量概述.md、02/常量概述.md - 8种基本数据类型 -
02/boolean.md、02/int.md等
03 - 运算符与表达式
- 运算符优先级 -
03/运算符优先级.md - 位运算与逻辑运算 -
03/位运算符.md、03/逻辑运算符.md - 条件(三元)运算符 -
03/条件运算符.md
04 - 流程控制
- 三大控制结构 -
04/if-else选择结构.md、04/switch多分支选择.md - 循环控制 -
04/for循环.md、04/while循环.md、04/do-while循环.md - 循环控制语句 -
04/break与continue.md - 程序流程模式 -
04/常见的程序运行流程.md
05 - 数组
- 一维与多维数组 -
05/一维数组.md、05/多维数组.md - 数组工具类 -
05/Arrays工具类.md
06 - 类与对象
- 方法与函数 -
06/方法定义与调用.md、06/方法重载vs方法重写对比.md - Lambda表达式 -
06/Lambda表达式与函数式接口.md - 递归方法 -
06/递归方法详解.md - JVM方法调用 -
06/JVM方法调用机制.md - 参数传递机制 -
06/参数传递.md - 构造方法与this -
06/构造方法.md、06/this关键字.md - 访问控制修饰符 -
06/访问修饰符.md - static关键字 -
06/static关键字.md - 包与导入 -
06/package与import.md
07 - 接口与继承
- 接口定义与实现 -
07/接口定义与实现.md - 抽象类与接口对比 -
07/抽象类与接口对比.md - 继承机制 -
07/继承.md - super关键字 -
07/super关键字.md - final关键字 -
07/final关键字.md
08 - 内部类
- 四种内部类 -
08/内部类概述.md - 成员内部类 -
08/成员内部类.md - 局部内部类 -
08/局部内部类.md - 匿名内部类 -
08/匿名内部类.md - 静态内部类 -
08/静态内部类.md
09 - 异常处理
- 异常体系 -
09/异常体系.md - try-catch-finally -
09/try-catch-finally.md - 自定义异常 -
09/自定义异常.md - 异常最佳实践 -
09/异常处理最佳实践.md
10 - Object类
- equals与hashCode -
10/equals与hashCode.md - toString方法 -
10/toString.md - clone方法 -
10/clone.md
11 - 常用工具类
- Math与Random -
11/Math与Random.md - String与StringBuilder -
11/String与StringBuilder.md - Scanner与System -
11/Scanner与System.md - 时间日期处理 -
11/时间日期处理.md
12 - 集合框架
- 集合体系概述 -
12/集合体系概述.md - List接口与实现 -
12/List接口与实现.md - Set接口与实现 -
12/Set接口与实现.md - Map接口与实现 -
12/Map接口与实现.md - Queue与Deque -
12/Queue与Deque.md - 集合工具类 -
12/集合工具类.md - 迭代器与遍历 -
12/迭代器与遍历.md - 泛型与类型擦除 -
12/泛型与类型擦除.md
13 - I/O流
- 字节流与字符流 -
13/字节流与字符流.md - 文件操作 -
13/文件操作.md - 对象序列化 -
13/对象序列化.md
14 - 多线程
- 线程创建方式 -
14/线程创建方式.md - 线程同步与锁 -
14/线程同步与锁.md - 线程通信 -
14/线程通信.md - 线程池 -
14/线程池.md - 并发工具类 -
14/并发工具类.md
15 - 网络编程
- Socket编程 -
15/Socket编程.md - HTTP客户端 -
15/HTTP客户端.md
16 - 反射机制
- Class对象与反射 -
16/Class对象与反射.md - 方法反射调用 -
16/方法反射调用.md - 字段反射操作 -
16/字段反射操作.md - 动态代理 -
16/动态代理.md
✨ JDK 9-11新特性(第17章)
| 特性 | JDK版本 | 文件 | 关键改进 |
|---|---|---|---|
| var类型推断 | 10 | 17/var类型推断.md | 局部变量类型推断 |
| String新增方法 | 11 | 17/String新方法.md | isBlank/strip/lines/repeat |
| Optional增强 | 9 | 17/Optional增强.md | ifPresentOrElse/or/stream |
| 集合工厂方法 | 9 | 17/集合增强.md | List.of/Set.of/Map.of |
| 接口private方法 | 9 | 17/接口增强.md | 私有实例与静态方法 |
| Stream API增强 | 9 | 17/Stream增强.md | takeWhile/dropWhile/iterate |
| HTTP Client | 11 | 17/HTTP_Client与Files增强.md | 现代HTTP客户端API |
| Files一行读写 | 11 | 17/HTTP_Client与Files增强.md | readString/writeString |
| 直接运行源文件 | 11 | 17/直接运行Java源文件.md | java HelloWorld.java |
| 模块化系统 | 9 | 17/模块化系统.md | module-info/Jigsaw |
🔥 JDK 12-17新特性(第18章)
| 特性 | JDK版本 | 文件 | 关键改进 |
|---|---|---|---|
| Switch表达式 | 14 | 18/Switch表达式.md | 箭头语法/yield返回值 |
| 文本块 | 1566789 | 18/文本块.md | 三引号多行字符串 |
| Records记录类 | 16 | 18/Records.md | 数据载体类简化 |
| instanceof模式匹配 | 16 | 18/instanceof模式匹配.md | 类型判断+变量绑定 |
| 密封类 | 17 | 18/密封类.md | sealed class + permits |
| Switch模式匹配 | 17预览 | 18/PatternMatchingSwitch.md | 类型模式/守卫条件 |
| 有用的NPE | 14 | 18/HelpfulNPE与String增强.md | 精确定位null链 |
| Stream增强 | 13-16 | 18/Stream增强.md | teeing/toList/mapMulti |
| String增强 | 12 | 18/HelpfulNPE与String增强.md | indent/transform/formatted |
| 日期时间增强 | 16 | 18/日期时间增强.md | DateTimeFormatter改进 |
🚀 JDK 18-21新特性(第19章)
| 特性 | JDK版本 | 文件 | 关键改进 |
|---|---|---|---|
| 虚拟线程 | 19预览/21正式 | 19/虚拟线程.md | 协程式并发(Project Loom) |
| Record模式匹配 | 19预览/21正式 | 19/Record模式匹配.md | Record解构与嵌套模式 |
| Switch模式匹配增强 | 17预览/21正式 | 19/Switch模式匹配.md | 类型模式强化/空值分支 |
| 未命名模式与变量 | 21预览 | 19/未命名模式与变量.md | _通配符占位符 |
| 序列集合 | 21 | 19/序列集合.md | SequencedCollection接口 |
| 外部函数与内存API | 19预览/21正式 | (未单独成文件) | FFI与堆外内存访问 |
💫 JDK 22-25新特性(第20章)
| 特性 | JDK版本 | 文件 | 关键改进 |
|---|---|---|---|
| 字符串模板 | 21预览/22正式 | 20/字符串模板.md | STR模板处理器 |
| 隐式声明类 | 21预览 | 20/隐式声明类.md | 简化main方法语法 |
| 原始类型模式匹配 | 22预览 | 20/原始类型模式匹配.md | int/long原始类型模式 |
| Stream Gatherers | 23预览 | 20/StreamGatherers.md | 自定义收集器扩展 |
| 结构化并发 | 21预览/待定 | (未单独成文件) | 结构化并发API |
📊 特性演进路线图
Java 8(2014) - 函数式编程起点
- Lambda表达式
- Stream API
- Optional
- 新的日期时间API
Java 9-11(2017-2018) - 模块化与现代API
- 模块化系统(Jigsaw)
- 集合工厂方法
- var类型推断
- HTTP Client
- 单文件源码执行
Java six-seven-eight-twelve-17(2019-2021) - 语法现代化
- Switch表达式
- 文本块
- Records记录类
- instanceof模式匹配
- 密封类
Java 18-21(2022-2023) - 并发革命
- 虚拟线程(Project Loom)
- Record模式匹配
- 结构化并发
- 外部函数与内存API
Java 22-25(2024-2025) - 编程范式演进
- 字符串模板
- 原始类型模式匹配
- Stream Gatherers
- 隐式声明类
🔍 特性分类索引
类型系统与语法糖
- 类型推断:var类型推断(JDK 10)
- 数据类简化:Records记录类(JDK 16)
- 模式匹配:instanceof模式匹配(JDK 16)、Switch模式匹配(JDK 17预览/21正式)
- 字符串改进:文本块(JDK 15)、字符串模板(JDK 21预览/22正式)
并发与性能
- 轻量级线程:虚拟线程(JDK 19预览/21正式)
- 结构化并发:JDK 21预览
- 内存访问:外部函数与内存API(JDK 19预览/21正式)
集合与Stream
- 不可变集合:集合工厂方法(JDK 9)
- Stream增强:takeWhile/dropWhile(JDK 9)、teeing(JDK 12)、toList(JDK 16)
- Stream扩展:Stream Gatherers(JDK 23预览)
模块化与工程化
- 模块系统:Jigsaw(JDK 9)
- 依赖管理:module-info.java
- 源码执行:单文件源码执行(JDK 11)
现代API
- HTTP客户端:HTTP Client(JDK 11)
- 文件操作:Files一行读写(JDK 11)
- 日期时间:DateTimeFormatter增强(JDK 16)
🎯 快速定位表
| 特性关键词 | 章节 | 具体文件 |
|---|---|---|
| Lambda | 第06章 | 06/Lambda表达式与函数式接口.md |
| Stream | 第17/18章 | 17/Stream增强.md、18/Stream增强.md |
| Optional | 第17章 | 17/Optional增强.md |
| var | 第17章 | 17/var类型推断.md |
| Record | 第18章 | 18/Records.md |
| 密封类 | 第18章 | 18/密封类.md |
| 文本块 | 第18章 | 18/文本块.md |
| 虚拟线程 | 第19章 | 19/虚拟线程.md |
| 模式匹配 | 第18/19章 | 18/instanceof模式匹配.md、19/Switch模式匹配.md |
| 字符串模板 | 第20章 | 20/字符串模板.md |
📝 如何使用本索引
- 学习路径规划:按章节顺序系统学习,或按JDK版本了解演进
- 特性查询:使用Ctrl+F搜索特定特性名称
- 版本迁移:了解从JDK 8升级到新版本需要掌握的特性
- 面试准备:重点关注标有🔥的高频面试特性
提示:本索引会随着JDK版本更新和新特性加入而持续更新。
最后更新:2026年6月14日 - 覆盖JDK 8到JDK 25主要特性