JDK的主要新特性 - Java 14

Posted 程序设计及信息技术学习平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK的主要新特性 - Java 14相关的知识,希望对你有一定的参考价值。

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

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

简化纯数据载体类的定义方式,使用record代替class定义的类,只需要声明属性,就可以获得属性的访问方法,以及toStringhashCodeequals方法。类似于使用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声明的类会自动拥有上面类中的三个方法,在这基础上还附送了equalshashCode方法以及toString方法。其中toString方法中包括所有属性的字符串表示形式及其名称。

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

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

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

Java 12引入的switch(预览特性)在Java 14中变为正式功能,不需要额外参数来启用,直接即可使用。主要是用->来替代以前的break,另外就是提供了yieldcase中生成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平台到开始支持macOSWindows系统。

6. 打包工具jpackage

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


资料引用:

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

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

https://www.jdon.com/51863



相关阅读







以上是关于JDK的主要新特性 - Java 14的主要内容,如果未能解决你的问题,请参考以下文章

JDK 14:Java 14 中的新特性

Java14新特性

Java教程JDK14新特性详解 有哪些值得关注的?

JDK 14的新特性:更加好用的NullPointerExceptions

JDK 14 新特性,正式来啦!

Java 14 有哪些新特性?