JDK 15 JAVA 15的新特性展望

Wesley13
• 阅读 602

JDK 15 JAVA 15的新特性展望

伴随着2020的寒冬和新冠病毒的肆虐,JAVA迎来了久未已久的JAVA 14。自从2017年JAVA 9发布之后,JAVA的发布版本跟上了敏捷开发的步伐,小步快跑,Java平台发布节奏已从每3年以上的主要版本转变为每6个月发布一次功能。现在,每年的3月和9月都会发布新的版本功能。

三月已过,九月还远吗?

在JAVA 14中,推出了swith的最终版本,并且支持了NVM。

今天本文将会展望一下JAVA 15中会带给我们的新特性。

总体来说有5个JEP将会提交到JAVA 15。

什么?你问我JEP是什么?

JEP的全称就是JDK Enhancement Proposals,简单点讲就像是一个个对JAVA进行改进提案,这些提案会在合适的时间合适的地点被加入JDK的特定版本。

下面看下5大提案都有些什么内容:

JEP 371: Hidden Classes

通常我们在使用大型的框架或者lambda表达式的时候,会动态生成很多类。但是不幸的是标准的定义类的API:ClassLoader::defineClass 和 Lookup::defineClass不能够区分出这些类是动态生成(运行时生成)的还是静态 生成(编译生成)的。

一般来说动态生成的类生命周期更短,并且其可见性要更低。但是现有的JDK并没有这个功能。

所有有了Hidden Classes的提案,通过Hidden Classes,不管是JDK还是JDK外部的框架,在生成动态类的时候都可以定义为Hidden Classes,这样可以更加有效的控制这些动态生成类的生命周期和可见性。

JEP 372: 删除 Nashorn JavaScript Engine

实际上jdk.scripting.nashorn和jdk.scripting.nashorn.shell这两个在JDK11的时候已经被标记为deprecated。在JDK15中只是把他们删除而已。

JEP 377: 新的垃圾回收器ZGC正式上线了

Z Garbage Collector(ZGC)是在JAVA 11中引入的垃圾回收器,但一直都是实验版本,在JDK 15中,终于要上线了。

ZGC是一个重新设计的并发的垃圾回收器,可以极大的提升GC的性能。

JEP 378: Text Blocks 标准化

Text Blocks第一次是在JDK 13中以预览功能出现的JEP 355。然后在JDK 14中又出现了第二个版本JEP 368。终于在JDK 15中可以有最终版本了。

文本块是一种多行字符串文字,它避免了大多数转义序列的需要,以一种可预测的方式自动设置字符串的格式。

HTML example

传统方式:

String html = "<html>\n" +
              "    <body>\n" +
              "        <p>Hello, world</p>\n" +
              "    </body>\n" +
              "</html>\n";

文本块方式:

String html = """
              <html>
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;

SQL example

传统方式:

String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
               "WHERE `CITY` = 'INDIANAPOLIS'\n" +
               "ORDER BY `EMP_ID`, `LAST_NAME`;\n";

文本块方式:

String query = """
               SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
               WHERE `CITY` = 'INDIANAPOLIS'
               ORDER BY `EMP_ID`, `LAST_NAME`;
               """;

JEP 379: 新的垃圾回收器Shenandoah上线

Shenandoah和ZGC一样,是以实验特性在JAVA 12中引入的JEP 189。现在终于要在JAVA 15中转正了。

总结

上述就是5大很可能在JAVA 15中实现的新特性,希望大家能够喜欢。

欢迎关注我的公众号:程序那些事,更多精彩等着您!

更多内容请访问 www.flydean.com

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
Java 8后的首个长期支持版本Java 11
Java11是Java8后的首个长期支持版本。按照Oracle公布的支持路线图,Java11将会获得Oracle提供的长期支持服务,直至2026年9月。按照官方的说法,新的发布周期会严格遵循时间点,将于每年的3月份和9月份发布。所以Java11的版本号是18.9(LTS)。不过与Java9和Java10这两个被称为“功能
Wesley13 Wesley13
3年前
Java新特性快速笔记
Java9是Java新的版本发布周期公布之前的最后一个新版本,并且因此,他这个版本特性极多,有着81个JEP。发布日期:2017921所有的JEP链接地址:https://openjdk.java.net/projects/jdk9/(https://www.oschina.net/action/GoToLink?u
Wesley13 Wesley13
3年前
JDK15真的来了,一起来看看它的新特性
简介一年两次的JDK最新版本JDK15在2020年9月15日正式发布了,这次的JDK15给我们带了隐藏类,EdDSA,模式匹配,Records,封闭类和TextBlock等诸多新特性。一起来看看吧。JDK15的新特性JEP385DeprecateRMIActivationforRemoval
Wesley13 Wesley13
3年前
Java 13 新特性及实战案例
近期Java界好消息频传。先是Java13发布,接着Eclipse也发布了新版本表示支持新版本的Java特性。本文介绍了Java13的新特性并展示了相关的示例。2019年9月17日,Java13正式发布。特性如下。Java13新特性此版本带来了以下几大新特性:JEP350,Dy
Wesley13 Wesley13
3年前
Java8 新特性
Java8新特性一、Java8新特性简介1\.简介Java8(又称为jdk1.8)是Java语言开发的一个主要版本。Java8是orecle公司于2014年3月发布,可以看成是自Java5以来最具革命性的版本。Java8为Java语言、编译器、类库、开发工具与
Wesley13 Wesley13
3年前
JDK 15安装及新特性介绍
JDK15已经于2020年9月15日如期发布。本文介绍JDK15新特性。发布版本说明根据发布的规划,这次发布的JDK15将是一个短期的过度版,只会被Oracle支持(维护)6个月,直到明年3月的JDK16发布此版本将停止维护。而Oracle下一个长期支持版(LTS版)会在明年的9月份发布(Java1
可莉 可莉
3年前
2020年Java程序员应该学习的10大技术
学习不易,坚持更难,加油哦!前言:对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西。每6个月更新一次Java版本,以及发布很多流行的框架,如Spring5、SpringSecurity5和SpringBoot2等,这些都给我们带来了很大的挑战。在2019年初,我认为Java10还是比较新的,但是,在
Stella981 Stella981
3年前
2020年Java程序员应该学习的10大技术
学习不易,坚持更难,加油哦!前言:对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西。每6个月更新一次Java版本,以及发布很多流行的框架,如Spring5、SpringSecurity5和SpringBoot2等,这些都给我们带来了很大的挑战。在2019年初,我认为Java10还是比较新的,但是,在
Wesley13 Wesley13
3年前
Java14来了!Switch竟如此简单?Lombok也不需要了?来用Idea搭建Java14吧!
Java14在2020.3.17日发布正式版了,但现在很多公司还在使用Java7或Java8,每当看到Java又发布新版本心里就慌得一匹。不过此版本并不是LTS(长期支持版)版本,所以不要慌,我们先来了解一下好了,等LTS版本发布后再用也不迟。版本说明现在Java的发布节奏是每年发布两个GA(Gene