Skip to main content

Java 22

核心总结

  • FFM、未命名变量和多文件源码启动转正,Class-File API 和 Stream Gatherers 首次预览。

升级关注

  • FFM API 转正,可逐步替代 JNI/JNA 场景。
  • Class-File API、Stream Gatherers 仍为预览。

示例

Foreign Function & Memory API 正式

import java.lang.foreign.*;
import java.lang.invoke.MethodHandle;

try (Arena arena = Arena.ofConfined()) {
MemorySegment cString = arena.allocateFrom("hello");
}

Unnamed Variables & Patterns

try (var _ = lock()) {
// 只需要资源生命周期,不需要变量名
}

多文件源码直接运行

java Main.java

JEPs

JEP状态分类标题中文描述
JEP 423正式GC/RuntimeRegion Pinning for G1G1 区域固定,降低 JNI 临界区导致的停顿。
JEP 447预览语言Statements before super(...) (Preview)构造函数 super 前语句预览。
JEP 454正式Panama/向量/原生Foreign Function & Memory APIFFM API 转正。
JEP 456正式语言Unnamed Variables & Patterns未命名变量和模式转正。
JEP 457预览工具/平台Class-File API (Preview)标准 Class-File API 预览。
JEP 458正式工具/平台Launch Multi-File Source-Code Programsjava 直接启动多文件源码程序。
JEP 459第二次预览语言String Templates (Second Preview)字符串模板第二次预览。
JEP 460第七次孵化Panama/向量/原生Vector API (Seventh Incubator)Vector API 第七次孵化。
JEP 461预览库/APIStream Gatherers (Preview)Stream Gatherers 预览,允许自定义中间操作。
JEP 462第二次预览并发/LoomStructured Concurrency (Second Preview)结构化并发第二次预览。
JEP 463第二次预览库/APIImplicitly Declared Classes and Instance Main Methods (Second Preview)隐式声明类和实例 main 第二次预览。
JEP 464第二次预览并发/LoomScoped Values (Second Preview)Scoped Values 第二次预览。

References