JDK 15 JAVA 15的新特性展望html
伴随着2020的寒冬和新冠病毒的肆虐,JAVA迎来了久未已久的JAVA 14。自从2017年JAVA 9发布以后,JAVA的发布版本跟上了敏捷开发的步伐,小步快跑,Java平台发布节奏已从每3年以上的主要版本转变为每6个月发布一次功能。如今,每一年的3月和9月都会发布新的版本功能。java
三月已过,九月还远吗?shell
在JAVA 14中,推出了swith的最终版本,而且支持了NVM。并发
今天本文将会展望一下JAVA 15中会带给咱们的新特性。 框架
整体来讲有5个JEP将会提交到JAVA 15。性能
什么?你问我JEP是什么?设计
JEP的全称就是JDK Enhancement Proposals,简单点讲就像是一个个对JAVA进行改进提案,这些提案会在合适的时间合适的地点被加入JDK的特定版本。code
下面看下5大提案都有些什么内容:htm
一般咱们在使用大型的框架或者lambda表达式的时候,会动态生成不少类。可是不幸的是标准的定义类的API:ClassLoader::defineClass 和 Lookup::defineClass不可以区分出这些类是动态生成(运行时生成)的仍是静态
生成(编译生成)的。生命周期
通常来讲动态生成的类生命周期更短,而且其可见性要更低。可是现有的JDK并无这个功能。
全部有了Hidden Classes的提案,经过Hidden Classes,无论是JDK仍是JDK外部的框架,在生成动态类的时候均可以定义为Hidden Classes,这样能够更加有效的控制这些动态生成类的生命周期和可见性。
实际上jdk.scripting.nashorn和jdk.scripting.nashorn.shell这两个在JDK11的时候已经被标记为deprecated。在JDK15中只是把他们删除而已。
Z Garbage Collector(ZGC)是在JAVA 11中引入的垃圾回收器,但一直都是实验版本,在JDK 15中,终于要上线了。
ZGC是一个从新设计的并发的垃圾回收器,能够极大的提高GC的性能。
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`; """;
Shenandoah和ZGC同样,是以实验特性在JAVA 12中引入的JEP 189。如今终于要在JAVA 15中转正了。
上述就是5大极可能在JAVA 15中实现的新特性,但愿你们可以喜欢。
欢迎关注个人公众号:程序那些事,更多精彩等着您!更多内容请访问 www.flydean.com