跳到主要内容

JAVA 21 特性

信息

JAVA 21 LTS (Long-Term-Support) 版本

Java 21

Java 17在GC、向量计算、本地调用等方面进行了优化,语法层面也有改进。这些新特性将进一步拓宽Java的应用领域,面向数据密集型任务提供更好的支持。

新特性

1. 链式方法调用改进

支持在同一行链式调用多个方法,代码更简洁。

var list = new ArrayList<>().add("A").add("B");

以前只能分行调用。

2.泛型特化

支持部分泛型类型特化,无需全特化。

class Box<T> {
T item;

void setBox(T t) {
item = t;
}
}

class StringBox extends Box<String> {}

以前泛型必须完全特化。

3. 模式匹配改进

扩展了instanceof的模式匹配用法。

if(obj instanceof String s) {
// 可以直接使用s,不再需要强制转换
}

以前匹配出的变量需要额外转换。

4. 元组改进

现在元组支持泛型参数化。

var point = Tuple.of<Integer, Integer>(2, 3);

旧版本不支持泛型元组。

5. 增强类型

新增Cloneable接口用于标识可克隆类。

public class MyClass implements Cloneable {
// 可以被clone了
}

6. 更新的JVM特性

包含G1更新、内存模型优化等。