Java21新特性
Java21 新特性(面试笔记,LTS版本)
一句话:Java21是继Java17之后的新一代LTS长期支持版本,很多Java17的预览特性在Java21正式转正。
目录
- 1. Switch 模式匹配(正式)
- 2. 虚拟线程 Virtual Threads(正式,JEP444)
- 3. 模式匹配 for Record(正式)
- 4. 序列集合 Sequenced Collections(正式)
- 5. 字符串模板 String Templates(预览)
- 面试背诵精简版
1. Switch 模式匹配(正式)
面试一句话:Java17 是预览,Java21 正式转正。switch 支持类型匹配、自动强转、支持 null,大量 if-instanceof 可以改成 switch。
代码示例
public static String getInfo(Object obj) {
return switch (obj) {
case Integer i -> "数字:" + i;
case String s -> "字符串:" + s;
case null -> "null值";
default -> "其他类型";
};
}
要点
- 支持
null分支,不会 NPE - 类型自动匹配 + 强转
- 配合密封类,可以省略
default分支(类型穷尽校验)
2. 虚拟线程 Virtual Threads(正式,JEP444)
面试重点!一句话:由 JVM 管理的轻量级线程,不是操作系统内核线程;创建成本极低,可以百万级并发,简化异步编程,不用手动维护线程池。
代码示例
public class VirtualThreadDemo {
public static void main(String[] args) {
// 创建虚拟线程
Thread vThread = Thread.ofVirtual()
.name("virtual-thread-1")
.start(() -> {
System.out.println("虚拟线程执行");
});
}
}
核心要点
- 虚拟线程由 JVM 调度,不绑定 OS 内核线程
- 开销极小,可以创建上百万个虚拟线程
- 适合 IO 密集型场景(数据库、HTTP 调用)
- 不是为了替代平台线程,CPU 密集场景提升有限
- 没有线程池的资源管理麻烦,每个任务一个虚拟线程
面试区分:
- 平台线程:OS 内核线程,重量级,数量有限
- 虚拟线程:JVM 轻量线程,轻量,支持海量并发
3. 模式匹配 for Record(正式)
一句话:可以直接对 Record 做解构匹配,快速取出 Record 内部字段。
代码示例
// 定义Record
record User(Long id, String name){}
public class RecordPatternDemo {
public static void main(String[] args) {
Object obj = new User(1L,"张三");
// Record解构模式匹配
if(obj instanceof User(Long id, String name)){
System.out.println(id + " : " + name);
}
}
}
4. 序列集合 Sequenced Collections(正式)
一句话:新增一套有序集合接口,统一 LinkedHashSet、LinkedHashMap、List,方便获取首尾元素、反向遍历。
核心接口
SequencedCollectionSequencedSetSequencedMap
代码示例
SequencedSet<String> set = new LinkedHashSet<>();
set.add("A");
set.add("B");
System.out.println(set.getFirst()); // 获取第一个
System.out.println(set.getLast()); // 获取最后一个
解决痛点:以前 LinkedHashSet 获取首尾元素很麻烦。
5. 字符串模板 String Templates(预览)
一句话:字符串插值,直接在字符串里嵌入变量,类似
${变量},简化字符串拼接。预览特性,生产慎用。
String name = "张三";
int age = 20;
String info = STR."姓名:\{name},年龄:\{age}";
System.out.println(info);
面试背诵精简版
Java21 是 LTS 版本,重点新特性:
- Switch 模式匹配正式转正;
- 虚拟线程 Virtual Threads(核心面试考点),JVM 轻量级线程,海量 IO 并发;
- Record 解构模式匹配;
- 序列集合 Sequenced Collections,统一有序集合首尾操作;
- 未命名变量
_;- 分代 ZGC;
- 字符串模板(预览)。

浙公网安备 33010602011771号