jdk 1.8的新特性_JDK的主要新特性 Java 14

Java 14带来了诸多新特性,如使用record简化数据类定义,提供更精确的NullPointerException信息,switch表达式成为正式功能,增强的instanceof运算符支持类型转换,ZGC扩展至macOS和Windows,以及新的打包工具jpackage,便于创建平台友好型安装程序。
摘要由CSDN通过智能技术生成

Java 14 发布于2020年3月17日,此次更新包含了很多新功能,总共有16个JDK增强建议(JEP)和69个新的API元素,几个重要的新特性如下。

1. 替代 class 的关键字 record (预览特性)

简化纯数据载体类的定义方式,使用record代替class定义的类,只需要声明属性,就可以获得属性的访问方法,以及toString,hashCode和equals方法。类似于使用class定义类,同时使用了lomobok插件,并打上@Getter,@ToString,@EqualsAndHashCode等注解。

以下是传统方式定义的类,这个类具有两个特征:(1) 类和所有属性都是final(2) 全部方法只有构造方法,和属性访问器(getXXX方法)组成。

publicfinal class Rectangle {

    public final double length;

    public final double width;

    public Rectangle(double length, doublewidth) {

        this.length = length;

        this.width = width;

    }

   public double getLength() {

        return length;

    }

    public double getWidth() {

        return width;

    }

}

那么这种类就很适合使用record来声明,只需一行语句:

publicrecord Rectangle(double length, double width) { }

使用record声明的类会自动拥有上面类中的三个方法,在这基础上还附送了equals,hashCode方法以及toString方法。其中toString方法中包括所有属性的字符串表示形式及其名称。

2. 空指针异常(NullPointerExceptions)精准提示

在JVM参数中添加-XX:+ShowCodeDetailsInExceptionMessages,可以在空指针异常中获取更为详细的调用信息,以便更快的定位和解决问题。

3. 增强的 switch 的成为正式功能

Java 12引入的switch(预览特性)在Java 14中变为正式功能,不需要额外参数来启用,直接即可使用。主要是用->来替代以前的break,另外就是提供了yield在case中生成switch表达式的结果。

4. 增强的instanceof运算符

运算符instanceof主要用在强制类型转换前探测对象的具体类型,以便能够执行转换。新版的instanceof可以在判断是否属于具体类型的同时完成转换:

Object obj = "This is a string";

if(obj instanceof String str){//测试加转换一次搞定

      //Java 14之前需要单独进行类型转换String str = (String)(obj);       

      System.out.println(str);

}

5. ZGC支持macOSWindows系统

Java 11引入的ZGC作为继G1后的下一代算法,从支持Linux平台到开始支持macOS和Windows系统。

6. 打包工具jpackage

长期以来,Java开发人员一直希望构建可以直接安装在本机上的应用程序,而不是分发jar和配置类路径。使用jpackage工具,可以按照特定平台的用户使用习惯安装/卸载Java应用程序。该工具支持Windows上的msi和exe格式,macOS上的pkg和dmg格式,以及Linux上的deb和rpm格式。安装jpackage构建的应用程序时,最终用户不会注意到任何差异。

资料引用:

https://www.cnblogs.com/otis/p/12846441.html

https://www.jianshu.com/p/540e5338fd3c

https://www.jdon.com/51863


相关阅读 JDK的主要新特性 - Java 13 JDK的主要新特性 - Java 12 JDK的主要新特性 - Java 11 JDK的主要新特性 - Java 10 JDK的主要新特性 - Java 9续 JDK的主要新特性 - Java 9

9464eb0ab7edc91805b07b5be600b8f6.png

38cf65d90a25aec84ca7a73def98eef8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值