Java 12

2025 年 3 月 28 日 | 阅读 4 分钟

Java 12 发布于 LTS 版本 11 之后。JDK 12 是 6 个月发布周期的一部分。Java 12 于 2019 年 3 月 19 日发布,这是一个非 LTS 版本,不会有长期支持。

Java 12 SE 平台的一个开源参考实现被称为 Java 12。在 JDK 12 中,Oracle 提供了 GPL 版本的生产就绪二进制文件,其他供应商的二进制文件也将很快跟进。

Java JDK 12 中,API 的新特性并没有增加太多。内部 Java/JVM 是 JDK 12 的主要增强。JDK 12 中增加了一个新特性,即 JEP。

以下是 JEP 包含在Java 12 中的特性:

  • JEP 325(Switch 表达式(预览))
    Java 12 中的 switch 语句得到了改进,可以将其用作表达式或语句。它允许 switch 语句使用“传统”或“简化”的范围和控制流行为。这些更改简化了日常编码。这些更改还提供了一种在 switch 中使用模式匹配的方法。在 Java 中,它作为预览语言特性可用。
    在传统的 switch 语句中,要返回一个值,我们需要将其赋给一个变量,然后像这样返回该变量:

在 Java 12 中,我们可以使用 case Lbreak 从 switch 返回值。

case L -> 语法

  • JEP 344(G1 的可中止混合收集)
    当 G1 混合收集超过暂停目标时,允许我们使其可中止。
  • JEP 346(从 G1 中及时返回未使用的已提交内存)
    增加了 JEP 346 特性,用于从垃圾回收器 G 中及时返回未使用的已提交内存。在 Java 11 中,G1 垃圾回收器在空闲时无法将 Java 堆内存返回给操作系统。但在 Java 12 中,G1 垃圾回收器可以做到这一点。
  • JEP 230
    JEP 230 定义了微基准测试套件。在 Java 12 中,JDK 源代码中添加了一个微基准测试套件。它有助于开发人员轻松创建新的微基准测试或运行现有的微基准测试。
  • JEP 341(默认类数据共享存档)
    为了生成 CDS 存档,Java 12 中的 JDK 构建过程得到了增强。为此,在 64 位平台上使用了默认类列表。

除了这些新特性之外,Java 12 中还添加了 4 个新的字符串方法,其中两个最常用:

indent(int n)

indent() 方法用于根据传递给它的参数调整字符串的每一行缩进。

我们可以传递正整数或负整数作为参数来减少字符串的缩进。

通过向函数传递正整数作为参数的示例

输出

Java 12

通过向函数传递负整数作为参数的示例

输出

Java 12

transform(Function f)

transform(Function f) 用于将指定的函数应用于该字符串。指定的函数只接受一个字符串值并返回对象。让我们举一个例子来理解这个方法:

TransformExample.java

输出

Java 12