您的位置:  首页 > 技术杂谈 > 正文

JDK17新特性详解

2021-09-14 15:00 https://my.oschina.net/mdxlcj/blog/5261402 木九天 次阅读 条评论

      JDK16新特性详解,2021-03-17正式发布 

      JDK15新特性详解,2020-09-15正式发布 

      JDK14新特性详解,2020-03-17正式发布  

      JDK十三新特性详解,2019-09-17正式发布

      JDK12新特性详解,2019-03-19正式发布

      JDK11新特性详解,2018-09-25正式发布

      JDK10新特性详解,2018-03-20正式发布

      JDK9 新特性详解,2017-09-21正式发布

      JDK8 新特性详解,2014-03-18正式发布

      预览版:该功能在当前版本可以使用,如果效果不是很好的话,可能以后的其他版本就会删去该功能。

      最终版:该功能在之前版本效果很好,之后的每个版本中都会存在该功能。

1、switch新增模式(预览版)

基于JDK16 instanceof模式匹配(最终版)优化升级switch使用方法,先回忆下JDK16模式匹配(最终版)

if (obj instanceof String s) {   // 直接使用 s拼接字符串
   s += "heihei"; 
} else if (obj instanceof Integer i){
   // 直接使用i进行整型逻辑运算
   i += 1;
}

switch可直接用instanceof模式匹配选择(需要提前考虑null判断)

Object o;
switch (o) {
    case null      -> System.out.println("首先判断对象是否为空,走空指针逻辑等后续逻辑");
    case String s  -> System.out.println("判断是否为字符串,s:" + s);
    case record p  -> System.out.println("判断是否为Record类型: " + p.toString());
    case int[] arr -> System.out.println("判断是否为数组,展示int数组的长度" + ia.length);
    case Integer i -> System.out.println("判断是否为Intger对象,i:" + i);
    case Student s   -> System.out.println("判断是否为具体学生对象,student:" + s.toString());
    case UserCommonService -> System.out.println("判断是否为普通用户实现类,然后走普通用户逻辑");
    case UserVipService    -> System.out.println("判断是否为vip用户实现类,然后走vip用户逻辑");
    default   -> System.out.println("Something else");
}

2、Realed class密封类(最终版)

密封的类和接口限制了其他类或接口可以扩展或实现它们,允许类或接口的作者控制负责实现它的代码,提供比访问修饰符更具声明性的方式来限制超类的使用。当使用final时,就不能子类继承,但同时开发接口的开发者又不想某些接口被继承,所以针对这一点,需要引入密封类来解决

public sealed interface Shape{
    final class Planet implements Shape {}
    final class Star   implements Shape {}
    final class Comet  implements Shape {}
}
public abstract sealed class Test{
    final class A extends Test {}
    final class B extends Test {}
    final class C extends Test {}
}

3、随机数增强

对开发无实际意义

4、浮点运算更加严格

简化数字敏感库开发,包括java.lang.Math和java.lang.StrictMath(对开发无实际意义)

 

 

  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接