Java SE 19 发布

经过六个月的开发,Oracle 发布了 Java SE 19(Java Platform, Standard Edition 19),它使用 OpenJDK 开源项目作为参考实现。 除了删除了一些已弃用的功能外,Java SE 19 保持与以前版本的 Java 平台的向后兼容性——大多数以前编写的 Java 项目在新版本下运行时仍然可以不加修改地运行。 Java SE 19(JDK、JRE 和 Server JRE)的可安装版本已为 Linux(x86_64、AArch64)、Windows(x86_64)和 macOS(x86_64、AArch64)准备。 由 OpenJDK 项目开发的 Java 19 参考实现在 GPLv2 许可下完全开放,具有 GNU ClassPath 例外,允许动态链接到商业产品。

Java SE 19 被归类为常规支持版本,并将继续接收更新,直到下一个版本。 长期支持 (LTS) 分支应该是 Java SE 17,它将继续接收更新直到 2029 年。 让我们提醒您,从Java 10发布开始,该项目切换到了新的开发流程,这意味着新版本的形成周期更短。 现在,新功能是在一个不断更新的主分支中开发的,其中包括现成的更改,并且每六个月从该分支分支一次以稳定新版本。

Java 19 的新特性包括:

  • 已经提出了对记录模式的初步支持,通过解析记录类型类值的工具扩展了 Java 16 中引入的模式匹配功能。 例如: record Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } } }
  • Linux 版本提供对 RISC-V 架构的支持。
  • 添加了对 FFM(外部函数和内存)API 的初步支持,该 API 允许您通过调用外部库中的函数并访问 JVM 外部的内存来组织 Java 程序与外部代码和数据的交互。
  • 添加了对虚拟线程的支持,虚拟线程是轻量级线程,可以大大简化高性能多线程应用程序的编写和维护。
  • Vector API 的第四个预览版已经提出,提供了向量计算的函数,这些函数在 x86_64 和 AArch64 处理器上使用向量指令执行,并允许同时将运算应用于多个值 (SIMD)。 与 HotSpot JIT 编译器中提供的标量操作自动向量化功能不同,新 API 可以显式控制并行数据处理的向量化。
  • 添加了“switch”表达式中模式匹配的第三个实验性实现,允许在“case”标签中使用灵活的模板而不是精确的值,一次覆盖一系列值,而以前必须使用繁琐的“if...else”表达式链。 对象 o = 123L; 字符串格式化 = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); 默认 -> o.toString(); };
  • 添加了用于结构化并行性的实验性 API,该 API 通过将不同线程中运行的多个任务视为单个块来简化多线程应用程序的开发。

来源: opennet.ru

添加评论