likes
comments
collection
share

你还在用jdk8搬砖的时候,jdk23已经悄悄发布了当你还在用JDK8 搬砖的时候,JDK 23于2024年9月17日全

作者站长头像
站长
· 阅读数 43

当你还在用JDK8 搬砖的时候,JDK 23于2024年9月17日全面上市。

虽然它不是长期支持(LTS)版本,但也并不妨碍我们一探究竟,看看它给我们带来了哪些惊喜!

你还在用jdk8搬砖的时候,jdk23已经悄悄发布了当你还在用JDK8 搬砖的时候,JDK 23于2024年9月17日全

一、 模式匹配中的原始类型(预览)

  • JEP 455:在模式匹配中引入原始类型支持,这意味着你可以在instanceofswitch语句中直接使用原始类型,而不需要进行装箱和拆箱操作。
if (obj instanceof int[] arr) {
    for (int value : arr) {
        System.out.println(value);
    }
}

二、 类文件API(第二次预览)

  • JEP 466:提供了一个API来读取和操作类文件,这对于需要动态生成或修改类文件的工具和库来说非常有用。
ClassFile classFile = ClassFile.read(inputStream);
Method method = classFile.methods().stream()
    .filter(m -> m.name().equals("main"))
    .findFirst()
    .orElse(null);

三、 Markdown文档注释

  • JEP 467:允许在JavaDoc中使用Markdown格式编写注释,使得文档更加易于阅读和编写。
/**
 * This is a simple method to demonstrate Markdown support.
 *
 * ```java
 * System.out.println("Hello, Markdown in JavaDocs!");
 * ```
 */
public void demoMarkdown() {
    System.out.println("Hello, Markdown in JavaDocs!");
}

四、 向量API(第八次孵化)

  • JEP 469:继续孵化向量API,为在Java中进行SIMD(单指令流多数据流)编程提供更好的支持。
var vector = Vector.fromArray(int[] array);
var result = vector.map(x -> x * x);

五、流收集器(第二次预览)

  • JEP 473:增强了Stream API,允许开发者定义自己的收集器,以支持复杂的数据转换和聚合操作。
List<String> names = people.stream()
    .collect(Collectors.flatMapping(Person::getNames, Collector.toList()));

六、 结构化并发(第三次预览)

  • JEP 480:通过引入结构化并发API,简化并发编程,将相关任务视为一个工作单元,提高错误处理和可观测性。
StructuredTask<Void> task = StructuredTask.run(() -> {
    System.out.println("Running a structured concurrent task");
});
task.join();

七、 Scoped Values(第三次预览)

  • JEP 481:允许在线程内和子线程间共享不可变数据,简化了并发编程中的共享数据管理。
ScopedValue<Boolean> active = ScopedValue.create(true);
try (var scope = active.openScope()) {
    active.set(false);
    // Perform actions
}

八、灵活的构造函数体(第二次预览)

  • JEP 482:允许在调用父类构造函数之前初始化字段,为构造函数提供了更多的灵活性。
public class MyClass {
    int value;

    {
        this.value = 42;
    }

    MyClass() {
        super();
    }
}
转载自:https://juejin.cn/post/7415911708865953832
评论
请登录