你需要了解的Java 17新特性

前言

上一篇 Springboot3.0初体验我们了解了一些Spring Boot 3.0 的一些新特性,有很多小伙伴私信我有没有关于Java 17的新特性说明?

对于“万年Java 8”而言,确实该升级到Java 17了,毕竟Java19已经发布。这里给大家总结一些比较重要的内容

新的var关键字

相比Java 8 添加了新的var关键字,使得我们用更简洁的方式声明我们的局部变量,可通过下面两行代码作比较

List<String> list = new ArrayList<>();

var myList =  new ArrayList<>();

注意的是,我们在使用var的时候,不能接收来自lambda的值,但是我们可以再lambda表达式中使用var关键字

对switch表达式进行扩展

java 17 对switch进行了增强,可以更加容易的进行分组

switch(flag){
    case ONE,TWO,THREE -> true;
    case FORE,FIVE -> false;

密封类(Sealed)

上面所说的switch中可能会出现“no default”的警告,这个是不是很烦恼,即使你包含了所有的选项,也依旧会有这个警告。

所以出现了密封类来替我们解决掉这个instanceof类型的检查警告。

实例匹配

java 17中,可以在if条件中创建局部变量,他会自动封装,帮我们进行强制转化

if(obj instanceof List list){

}

上面这段判断条件就是说明如果obj是List类型则创建并赋值给变量list

文本块支持

三个双引号来实现对文本块的支持""" 我是文本块 """

文本块帮助我们保留了可读的JSON或者xml信息

垃圾回收器

在Java 9 开始,G1便是默认的垃圾收集器,机关和Parallel GC相比减少了吞吐。但是G1提供了对将未使用已提交内存返回给了我们操作系统的能力的支持。

这使得你如果从YYDS的Java 8简单的切换到Java 17,则有可能会很大成都提高你的程序运行速度。

总结

还有很多新的特性与更改,这里就不一一列出了,感兴趣的话可以官网更新查看。

欢迎大家关注我的工种昊《coder练习生》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值