Java 25 中的 6 个新特性解读
本文聚焦 Java 25 中已永久化的 6 个特性:紧凑源文件与实例 main 方法、灵活的构造器主体、Scoped Values、模块导入声明、AOT 命令行易用性与方法剖析、分代 Shenandoah。通过简明说明与示例代码,帮助你快速把握其设计意图与落地用法。
1. 紧凑源文件与实例 main 方法
Java 25 支持“无显式类声明”的文件,并提供实例 main
方法与更短的 I/O API(java.lang.IO
),降低入门成本。
- 无需
class
声明,编译器会生成隐式、final、未命名类承载代码。 - 无需冗长的
System.out.println
,改用IO.println
。 - 自动导入
java.base
中常用类型(如集合/数学/时间)。
示例:
void main() {IO.println("Hello, World!");
}
2. 灵活的构造器主体(Flexible Constructor Bodies)
以往构造器必须先调用 super()
或 this()
,才能执行校验或准备逻辑。Java 25 允许在不引用“正在构造的实例”的前提下,将校验逻辑放在显式父构造器调用之前,使代码更自然、更易读。
之前的常见写法:
class Employee extends Person {Employee(String name, int age) {super(name, age);if (age < 18 || age > 67) {throw new IllegalArgumentException("Age out of range");}}
}class Employee extends Person {Employee(String name, int age) {super(name, verifyAge(age));}private static int verifyAge(int value) {<