介绍
Java是一门面向对象的编程语言,由Sun公司于1995年正式发布,其设计理念源于对C 语言的改进,摒弃了多继承和指针等复杂概念,实现了功能强大与简单易用的结合。作为静态面向对象编程语言的代表,Java通过JVM(Java虚拟机)实现跨平台运行,具备分布式、健壮性、安全性、多线程等特性,支持桌面应用、Web应用和嵌入式系统开发。
该语言经历多个重要版本迭代,2006年Sun公司将Java开源,2009年甲骨文公司完成对Sun的收购后持续推进技术更新 。2014年Java 8引入函数式编程特性,2017年Java 9实现模块化系统 。2024年3月甲骨文发布Java 22,针对性能、安全性和开发效率进行数千项优化,提供对云原生应用和现代硬件架构的增强支持。
JDK 25(2025-09-16 发布)是 Oracle 下一个长期支持(LTS)版本,共交付 18 个 JEP,覆盖语法糖、并发、性能、安全、监控、GC 等多个维度。下面按“是什么-能做什么-怎么用-要注意”四个层次,对每一个正式特性、预览/孵化特性做系统梳理,并给出学习路径与示例代码,方便快速上手与深度落地。


下载地址
JDK 25 概述
1.1 版本基本信息
-
发布时间:2025/9/16 GA,Oracle 长期支持(LTS)版本
-
支持时间表:Premier Support 至 2030/9,Extended Support 至 2032/9
-
发布节奏:自 JDK 21 之后第 4 个“功能版”,累积 18 个 JEP,其中 12 个正式、6 个预览/孵化
1.2 发布背景与目标
-
路线图坐标:处于 Amber(语法糖)、Loom(并发)、Valhalla(性能)、Panama(原生)四条管线交汇点
设计目标:
- 让 Java 像“脚本”一样快速起步(紧凑 main、import module)
- 让并发“易用且安全”(结构化并发 + 作用域值)
- 让内存与启动“瘦身提速”(紧凑对象头、AOT 缓存)
- 保持最大向后兼容,零成本升级
安装与配置
官网安装地址:Overview of JDK Installation
2.1 系统要求
-
仅提供 64 位构建(JEP 503 已移除 32 位 x86)
-
最低内核:Linux 2.6+ / Windows 10 1809+ / macOS 11+
-
磁盘:约 600 MB;建议 16 GB RAM 以上体验分代 Shenandoah
2.2 获取与安装
-
官方二进制:jdk.java.net/25(GPL)与 Oracle 官网(OTN)
-
包管理:
– SDKMAN:sdk install java 25-open
– Homebrew:brew install openjdk@25 -
多版本切换:目录并列 + 环境变量 JAVA_HOME + update-alternatives(Linux)
2.3 IDE & 构建工具
-
IntelliJ IDEA 2025.2+ / Eclipse 4.35+ / VS Code 1.94+ 内置 25 支持
-
Maven:toolchain 25 + compiler.release=25;Gradle:gradle.properties→org.gradle.java.home=/path/jdk25
必加参数(预览特性):
- javac --enable-preview --release 25
- java --enable-preview ...
语言特性更新
3.1 紧凑源文件与实例 main(JEP 512,正式)
-
单文件即可运行,main 可为实例方法
-
隐式导入 java.base 顶级类,java.lang.IO 提供 println/readLine
-
典型脚本:
void main() { var name = readLine("Name? "); println("Hello %s!".formatted(name)); }
3.2 灵活构造函数体(JEP 513,正式)
-
this()/super() 不再强制第一行;可在之前做参数校验
-
final 字段初始化时机放宽,减少辅助静态工厂
3.3 模块导入声明(JEP 511,正式)
-
一条 import module M; 导入 M 导出的所有包
-
极适合示例代码、JShell、单元测试
3.4 String Templates(第二次预览)
-
语法:STR."User {user}"、FMT."%-10s{user}"
-
自定义处理器:实现 TemplateProcessor 即可做 SQL/JSON 校验
-
性能:编译期转为拼接调用,无运行时反射
3.5 模式匹配再进化
-
原始类型模式(JEP 507,第三次预览)
– switch (o) { case int i -> … } 避免装箱 -
Record 解构、嵌套记录模式全面转正
API 与库更新
API地址:新API列表(Java SE 25 和 JDK 25)
4.1 Foreign Function & Memory API(JEP 454,第四次预览→JDK 25 转正)
-
安全访问堆外内存:MemorySegment、Arena
-
零开销调用 C 函数:Linker.downcallHandle
-
性能对比 JNI:吞吐↑ 30%,无死锁风险
4.2 Vector API(JEP 508,第十轮孵化)
-
FloatVector、IntVector 等类型化操作
-
自动映射到 AVX-512/SVE;需 --add-modules jdk.incubator.vector
4.3 并发 API 增强
-
StructuredTaskScope 新增 ShutdownOnSuccess/Failure 策略
-
作用域值 ScopedValue(第一次预览)替代 ThreadLocal,零泄漏
4.4 集合与流
-
List/Set/Map.of(...) 族新增 ofEntries 重载
-
Collectors 新增 teeing() 重载,支持并行下游
JVM 与性能
5.1 垃圾收集器
-
分代 Shenandoah(实验):-XX:+UseShenandoahGC -XX:ShenandoahGCMode=generational
– 吞吐提升 10~20%,暂停 < 10 ms -
ZGC:亚毫秒暂停保持,支持的最大堆扩至 64 TB
5.2 紧凑对象头(JEP 519,正式但默认关)
-
-XX:+UseCompactObjectHeaders 节省 5-15% 堆,CPU 缓存更友好
5.3 AOT 双特性(正式)
-
JEP 514:运行期记录热点 → AOT 缓存
-
JEP 515:方法性能剖面 → 首次启动即峰值
– 实测 SpringBoot 启动时间 -35%
5.4 JIT 与编译器
-
C2 自动向量化增强,支持新 SIMD 掩码指令
-
GraalVM 社区版 25 已同步,native-image 支持分代 GC
发工具与监控
6.1 命令行
-
jshell 支持 import module,Tab 可提示模块列表
-
jpackage 加入 --runtime-version 25 自动打包最小运行时
6.2 JFR/JMC
-
协作采样(JEP 518)偏差 < 2%
-
方法计时(JEP 520)零 Agent 即可看“火焰图”
6.3 文档
7.2 TLS
7.3 内存安全
-
javadoc 原生输出 Markdown,README.md 直接嵌入代码示例
安全增强
7.1 加密库
-
KDF API(JEP 510)内置 PBKDF2、HKDF、Scrypt
-
PEM 解析(JEP 470,预览)无需 BouncyCastle
-
默认启用 TLS 1.3,支持后量子密钥交换(X25519MLKEM)实验标志
-
Foreign Memory 访问自动绑定 Arena 生命周期,UAF 异常转为 IllegalStateException
兼容性与迁移
8.1 行为变更
-
32 位端口移除(JEP 503)
-
废弃 Thread.stop(Throwable) 彻底删除
-
默认 UTF-8 编码(JDK 18 起)继续生效
8.2 迁移步骤
- 在 JDK 25 跑
jdeprscan --release 25 old.jar - 用
jlink --add-modules ALL-MODULE-PATH定制最小运行时 - 灰度压测:关注反射访问
sun.misc.*的警告
8.3 第三方生态
-
Spring Boot 3.4+、Quarkus 3.15+、Micronaut 4.7+ 已官方适配
-
数据库驱动:MySQL Connector/J 9.0、PostgreSQL 42.7 支持 JDK 25
实际应用案例
9.1 微服务
-
Spring Boot + 虚拟线程 + 结构化并发:
– RPS 提升 1.8×,99th 延迟下降 45%
9.2 Serverless 函数
-
单文件脚本直接
java --source 25 Function.java,冷启动 35 ms(结合 AOT 缓存)
9.3 大数据
-
Vector API 重写 Hive UDF,CPU 利用率↓ 28%
佳实践与调优
10.1 编码实践
-
优先使用实例 main 写 CLI;复杂项目仍用模块化
-
模式匹配 switch 必须覆盖所有 case,编译器会提示 exhaustiveness
10.2 JVM 调优
-
容器环境:-XX:+UseCompactObjectHeaders -XX:+UseStringDeduplication
-
大堆低延迟:分代 Shenandoah + -XX:MaxGCPauseMillis=10
10.3 监控
-
生产必开
-XX:StartFlightRecording=disk=true,maxage=6h -
JMC 规则模板“Hot Methods”自动定位 CPU 瓶颈
学习资源与社区
11.1 官方
-
OpenJDK 25 项目页:https://openjdk.org/projects/jdk/25/
-
JEP 列表:https://openjdk.org/jeps/0 筛选 500-521


被折叠的 条评论
为什么被折叠?



