伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

Java 16 正式发布,已经是Java 8的两倍了

来源:本站原创 浏览:260次 时间:2021-05-05

就在刚刚,Java 16正式发布。

Java 16 正式发布主要特性Vector API(孵化)

提升了Java在CPU向量计算的性能,这是对大规模的张量计算的支持,提升了Java在AI领域的能力。

启用了新的C++特性

允许在JDK中C++源代码中使用 C ++ 14的新特性。

从 Mercurial 迁移到 Git

Git目前已经成为代码版本管理领域的绝对统治者,现在Java顺应潮流也使用Git进行源代码管理。

迁移到GitHub

OpenJDK的代码现在由GitHub托管。

ZGC垃圾收集器

并发线程堆栈处理的垃圾收集器。

Unix域套接字通道

Unix域套接字对ServerSocketChannelSocketChannel的支持。

Alpine Linux Port

在x64和AArch64体系结构上,将JDK移植到Alpine Linux以及其它使用musl C库的Linxu发行版上。

Elastic Metaspace

Hotspot对类元数据的处理(metaspace-元空间)有了很大的改进。占用空间减少了,现在可以更快地将未使用的内存回收到操作系统。

Windows/AArch64 Port

将 JDK 移植到 Windows / AArch64平台。

Foreign Linker API(孵化)

引入一个API,该API提供对本地代码的静态类型的纯Java访问。该API与Foreign-Memory API(JEP 393)一起将大大简化绑定到本机库的原本容易出错的过程。

Warnings for Value-Based Classes

将原始包装器类指定为*基于值的类,*并弃用其构造函数以将其删除,从而提示新的弃用警告。提供有关在Java平台中不正确尝试在任何基于值的类的实例上进行同步的警告。

Packaging Tool

提供jpackage用于打包独立Java应用程序的工具。

  • 支持本地打包格式,以为最终用户提供自然的安装体验。这些格式包括msiexe在Windows,pkgdmg在MacOS,以及debrpm在Linux上。
  • 允许在打包时指定启动时间参数。
  • 可以从命令行直接调用,也可以通过ToolProviderAPI以编程方式调用。
Foreign-Memory Access API (第三次孵化)

引入一个API,允许Java程序安全有效地访问Java堆之外的外部内存。

Pattern Matching for instanceof

在此之前 Java 中:

// 先判断类型
if (obj instanceof String) {
    // 然后转换
    String s = (String) obj;
    // 然后才能使用
}

自动匹配模式中:

if (obj instanceof String s) {
    // 如果类型匹配 直接使用
} else {
    // 如果类型不匹配则不能直接使用
}
Records Class

终于转正了,Java类不再又臭又长。原来是这样的:

public class Range {

    private final int min;
    private final int max;

    public Range(int min, inhttps://www.3tt.net/?mod=artinfo&aid=836t max) {
        this.min = min;
        this.max = max;
    }

    public int getMin() {
        return min;
    }

    public int getMax() {
        return max;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Range range = (Range) o;
        return min == range.min && max == range.max;
    }

    @Override
    public int hashCode() {
        return Objects.hash(min, max);
    }

    @Override
    public String toString() {
        return "Range{" +
          "min=" + min +
          ", max=" + max +
          '}';
    }
}

现在可以简化为:

public record Range(int min, int max) {}

以往的文章有详细介绍。Java 14 新特性之JEP 359: Records(Preview)

默认情况下严格封装JDK

提高JDK的安全性和可维护性,跟普通开发者无关。

Sealed Classes

密封类,简单说就是被final修饰的类,密封类不能被继承,防止了恶意的派生。

另外Oracle发文对参与JDK 16贡献的公司和个人进行了感谢。

Oracle要感谢为ARM,SAP,Red Hat和腾讯等组织工作的开发人员所做的杰出贡献。我们也很高兴看到较小的组织(例如Ampere Computing,Bellsoft,DataDog,Microdoc和独立开发人员)的贡献,他们共同贡献了Java 16中3%的修复程序。

我们同样感谢许多经验丰富的开发人员,他们审查了建议的更改,尝试采用早期访问版本并报告问题的早期采用者,以及在OpenJDK邮件列表中提供反馈的敬业专业人员。

参与JDK16处理Issues的组织

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net