美文网首页
JDK21实用新特性

JDK21实用新特性

作者: 莫失莫忘X3 | 来源:发表于2024-03-20 11:15 被阅读0次

字符串模板

允许在字符串中使用占位符来动态替换变量的值。这提供了一种更简洁、更直观的方式来构建字符串,避免了传统的字符串拼接或格式化方法的复杂性。
基本使用说明:

String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan");   // true

同时支持多行模板和表达式

String sore = "20";
var json = STR."""
{
  "user": "\{
    // We only want to use the firstname
    this.user.firstname()
  }",
  "sore : \{sore}
}
""";

Switch 增强

switch语句通过模式匹配功能得到了显著增强。以下是一个具体的示例:

Object value = "Hello";  
  
switch (value) {  
    case String s -> System.out.println(s.length()); // 匹配String类型,并获取长度  
    case Integer i -> System.out.println(i * 2); // 匹配Integer类型,并乘以2  
    case null -> System.out.println("Value is null"); // 匹配null值  
    default -> System.out.println("Unknown type"); // 未知类型  
}

这种模式匹配的方式比传统的switch语句更加灵活和强大,因为它不再局限于简单的整数或枚举类型的匹配,而是可以匹配任何类型的对象,并根据对象的类型执行相应的操作。

记录模式

记录模式是一种新的语言特性,允许我们定义简洁且不可变的数据模型。它通过自动创建构造函数、getter 和 equals/hashCode 等方法来简化数据对象的定义。

public record Person(String name, int age) {}
Person person = new Person("Alice",25);
System.out.println(person.name());
System.out.println(person.age());

虚拟线程

历史版本中,JDK 中的每个 java.lang.Thread 实例都是一个平台线程。平台线程在底层操作系统线程上运行 Java 代码,并在代码的整个生命周期内捕获操作系统线程。平台线程的数量受限于操作系统线程的数量。

在 JDK 21 中引入的虚拟线程被设计成一种轻量级的线程模型,它可以更高效地执行异步代码,避免了传统线程模型中线程的创建和销毁开销,提供更高的并发性和更低的资源消耗。

//创建一个新的并且已启动的虚拟线程
Thread thread = Thread.startVirtualThread(runnable);
//创建executor
ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();
//通过executor提交任务,采用虚拟线程执行
executor.submit(runnable);

相关文章

  • ES新提案:双问号操作符

    摘要: 简单实用的新特性。 原文:ES新提案:双问号操作符 译者:前端小智 本文主要讲Gabriel Isenbe...

  • JDK新特性书目录

    JDK1.4新特性 JDK1.5新特性 JDK1.6新特性 JDK1.7新特性 JDK1.8新特性

  • python3.8实用的新特性

    赋值表达式 新增的语法 := 可在表达式内部为变量赋值。 它被昵称为“海象运算符”因为它很像是 海象的眼睛和长牙。...

  • 易学又实用的新特性:for...of

    今天带来的知识点既简单又使用,是不是感觉非常的棒啊,OK,不多说了,咱们开始往下看. for...of 是什么 f...

  • Math方法和es新特性

    es6常用 es7新特性 es8新特性 es9新特性 es10新特性

  • Java11的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java15的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java12的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • 提供高质量的关于小程序、h5 等前端领域的文章和项目

    第七十一期 在 2020 年,谈小程序框架该如何选择 Vue 新特性:CSS 中使用 JS 变量 17 个实用的图...

  • ES2020 新特性

    ES2020已经落地了,其中几个新特性实用性还是不错的,这就意味着,现在对 ES2020 中 Javascript...

网友评论

      本文标题:JDK21实用新特性

      本文链接:https://www.haomeiwen.com/subject/pzlxtjtx.html