跳至正文
Wener Notes

Java 22

约 2 分钟阅读
  • Released: 2024-03-19

核心总结

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

升级关注

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

示例

Foreign Function & Memory API 正式

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

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

Unnamed Variables & Patterns

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

多文件源码直接运行

bash
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

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • Java 版本
    笔记 · Java 22

    自 Java 9 · 每 6 个月一个版本 · 每 2 年一个 LTS - 每 4 个版本 · Java 11 - Java 17 隔了 3 年, 之后为每隔两年 · Java JEP 与版本变化 · 参考 · Java version history

  • Java JEP 与版本变化
    笔记 · 22

    资料来源以 OpenJDK JDK Project 页面和 JEP 页面为主。Java 5–7 主要按 JSR/项目整理;JDK 8 起按代表性 JEP 整理;JDK 10 起列出该版本项目页 Features 中的全部 JEP。 · | 状态 | 含义 | 使用建议 |

参考资料

其他外链14 条
最近更新commit 25ad4d4编辑