新的Java即将到来!

JDK增强
JDK 13按计划将于2019年9月17日发布,这其中将包含些什么JDK增强呢?

1、开发用于打包自包含Java应用程序的工具,称为jpackage。该工具将基于JavaFX javapackagertool,它支持本机打包格式,为用户提供自然的安装体验。它允许在打包时指定启动时参数。可以直接从命令行调用该工具,也可以通过ToolProvider以编程方式调用该工具。许多应用程序需要以一键方式安装在本机平台上,而不是放在类路径或模块路径上。

打包工具还可以填补Java Web Start等技术留下的空白,这些技术已从Oracle的JDK 11中删除。

2、增强ZGC(Z垃圾收集器)以将未使用的内存返回到操作系统。ZGC被称为可扩展的低延迟收集器,目前的实现不会将未使用的内存返回到操作系统,即使这些内存长时间没有使用。对于某些应用程序和环境而言,在很多的情况下这并不最佳的方案,尤其是那些需要关注内存占用的应用程序和环境,例如应用程序可能长时间处于空闲状态并与其他应用程序共享或竞争资源的容器或环境。

3、扩展应用程序类数据共享(AppCDS),以便在应用程序执行结束时动态存档类。 包括默 认的基础层CDS存档中不存在的,但所有已加载的应用程序和库类。通过这个这个特性,可以提供提高AppCDS的可用性,并消除用户进行试运行以创建每个应用程序的类列表的需要。

beta版增强
除此之外,甲骨文Java平台小组的首席架构师马克·莱因霍尔德(Mark Reinhold)此前谈到过的JDK 13预期的两项功能:

原始字符串文字(Raw string literals),可以跨越多行源代码并且不解释转义序列。这个功能因为尚未完成,已经从2019年3月发布的JDK 12中删除了。计划是仅在JDK 13中提供原始字符串文字作为选择性测试版。

它的目标是简化Java的开发,它包括可读形式的字符序列,并且不含Java指示符,或者提供针对除Java之外的语法的字符串。在JDK 13中进行预期的测试运行后,原始字符串文字可以在随后的JDK 14版本中进行生产环境的应用。

切换表达式( switch expressions)的生产版本,JDK将为其提供beta实现。 switch语句将被扩展既可以使用作语句也可以使用表达式,这样,可以简化变量的作用域和程序的控制流行为。