[java] jdk12~14

本文介绍了JDK12至14的一些重要特性,包括JDK12的SwitchExpressions简化代码避免错误,ShenandoahGC减少GC暂停时间,JDK13的文本块升级、switch优化和新版套接字API,以及JDK14的switch表达式最终版、垃圾回收策略调整和instanceof模式匹配等。这些更新旨在提高代码质量和执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDK12:

一、Switch Expressions

旧版本switch 语句如果漏写了一个 break,那么逻辑往往就跑偏了,这种方式既繁琐,又容易出错。jdk12中switch 表达式,Pattern Matching 机制能够自然地保证只有单一路径会被执行。

switch (day) {

case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);

case TUESDAY -> System.out.println(7);

case THURSDAY, SATURDAY -> System.out.println(8);

case WEDNESDAY -> System.out.println(9);

}

 

二、Shenandoah GC

新增了一个名为 Shenandoah 的 GC 算法,通过与正在运行的 Java 线程同时进行 evacuation 工作来减少 GC 暂停时间。使用 Shenandoah 的暂停时间与堆大小无关,这意味着无论堆是 200 MB 还是 200 GB,都将具有相同的暂停时间

 

JDK13:

一、文本块升级

jdk13之前:

String html = "<html>\n" +

" <body>\n" +

" <p>Hello, world</p>\n" +

" </body>\n" +

"</html>\n";

jdk13之后:

String html = """

<html>

<body>

<p>Hello, world</p>

</body>

</html>

""";

 

二、switch优化更新

static void howMany(int k) {

System.out.println(

switch (k) {

case 1 -> "one"

case 2 -> "two"

default -> "many"

}

);

}

 

三、重新实现旧版套接字API

四、核心库/java.util中:I18N

五、取消使用未使用的内存

 

JDK14:

1、switch优化变更为最终版

2、垃圾回收相关

1)删除cms垃圾收集器

2)弃用 ParallelScavenge + SerialOld GC 的垃圾回收算法组合

3)将 zgc 垃圾回收器移植到 macOS 和 windows 平台

3、instanceof的模式匹配(预览版)

instanceof运算符支持模式匹配来增强java语言,如下:

if (obj instanceof String s) {

// can use s here

} else {

// can't use s here

}

4、删除了安全库java.security.acl API

5、货币格式(优化)

可以通过 NumberFormat.getCurrencyInstance(Locale)使用“ u-cf-account” Unicode区域设置扩展名来获得具有记帐样式的货币格式实例,其中金额在某些区域设置中用括号表示,例如,Locale.US,它将格式化为($3.27)而不是-$3.27。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值