JDK17新特性 即将成为主流的JDK 深入了解


对于JDK17比较明显的特性 总结

Switch 语句增强

首先就是简化了Switch语句:
在这里插入图片描述
去掉了break及可以直接给返回值赋值。并且再匹配多个值的时候也做了调整:
在这里插入图片描述
这样看起来是不是很简单了。
新增了yield关键字
相当于我们使用的return
在这里插入图片描述
用来返回对象。

对象类型的匹配
在这里插入图片描述

优化字符串拼接代码

相信大家之前在代码中拼接字符串的时候一定遇到过
在这里插入图片描述
在jdk17就会变得很友好啦,就有了转义符。在sql,json,html中都有优化,通过三个双引号来解决

instanceof增强

在这里插入图片描述
在之前的版本,当使用instanceof判断之后,如果是属于类型的话,想使用还要进行强转,在之后的版本就不需要了,用法如上图。

密封类(限制继承类)

在这里插入图片描述

sealed 修饰父类,就是设置当前类为密封类
permits 为允许继承的子类 只有permits后面的类才能继承
注意 Dog Cat 类必须使用non-sealed或者final修饰,并且Dog Cat必须和密封类在同一个包中。
在这里插入图片描述

final表示子类不会再被继承,non-sealed表示子类可以再被其他类继承

密封类的优点

  • 安全 限制了子类的继承,避免了一些不必要的继承。
  • 可控 因为在同一个包中 减少了代码的复杂性 易于维护

ZGC垃圾收集器

相信大家在学Jvm的时候都有听过STW(Stop The Word),就是在垃圾回收触发的时候Jvm的内存将会被冻结,所有的线程都会停止运行,发生卡顿。这是不可避免的,所以说最好的办法就是减少垃圾回收的时间。

ZGC的STW的时间是小于10ms,时间很短几乎感受不到,并且ZGC的堆内存可以设置很大甚至是T级别的,所以说触发GC的次数就会大大减少。提高性能。

添加以下JVM选项就可以开启ZGC

-XX:+UseZGC

猜你喜欢

转载自blog.csdn.net/wang121213145/article/details/131011564