AIGC标识 Java21新特性

Java21 新特性(面试笔记,LTS版本)

一句话:Java21是继Java17之后的新一代LTS长期支持版本,很多Java17的预览特性在Java21正式转正。

目录

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("虚拟线程执行");
                });
    }
}

核心要点

  1. 虚拟线程由 JVM 调度,不绑定 OS 内核线程
  2. 开销极小,可以创建上百万个虚拟线程
  3. 适合 IO 密集型场景(数据库、HTTP 调用)
  4. 不是为了替代平台线程,CPU 密集场景提升有限
  5. 没有线程池的资源管理麻烦,每个任务一个虚拟线程

面试区分:

  • 平台线程: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,方便获取首尾元素、反向遍历。

核心接口

  • SequencedCollection
  • SequencedSet
  • SequencedMap

代码示例

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 版本,重点新特性:

  1. Switch 模式匹配正式转正;
  2. 虚拟线程 Virtual Threads(核心面试考点),JVM 轻量级线程,海量 IO 并发;
  3. Record 解构模式匹配;
  4. 序列集合 Sequenced Collections,统一有序集合首尾操作;
  5. 未命名变量_;
  6. 分代 ZGC;
  7. 字符串模板(预览)。
posted @ 2026-09-26 14:53  赵登科  阅读(2)  评论(0)    收藏  举报