JDK 13:新功能即将推出 - TechCentral.ie


JDK 13将于2019年9月17日到期,之后将分别于6月和8月开始逐步推出candidate版本。以下是JDK 13正式发布的功能:

  • 重新实现传统的套接字Socket API,通过使用更简单,更现代的实现替换net.Socket和java.net.ServerSocket API使用的底层实现,该实现易于调试和维护。新的实现旨在易于适应使用用户模式的线程(也称为光纤),这些线程正在Project Loom中进行探索  。上述传统API可以追溯到JDK 1.0,并且包含传统C和Java代码的混合,这些代码曾经被认为带来调试和维护的痛苦。遗留实现还存在其他问题:支持异步关闭,导致可靠性和移植问题的原生数据结构,以及需要彻底检查的并发问题。 

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

  • 扩展应用程序类 - 数据共享(AppCDS),以便在应用程序执行结束时动态存档类。存档类(Archived classes )将包括加载所有在默认基础CDS存档层不存在的应用程序和库类。该提案处于targeted 阶段,旨在提高AppCDS的可用性,并消除用户进行试运行以创建每个应用程序的类列表的需要。

JDK 13中也预计还有三个被认为值得JDK 13包含的功能尚未添加到官方列表中。这些包括:
  • 开发用于打包自包含Java应用程序的工具,称为jpackage。该工具将基于JavaFX javapackager工具,该工具支持本机打包格式,为用户提供自然的安装体验。它允许在打包时指定启动时参数。可以直接从命令行调用该工具,也可以通过ToolProvider以编程方式调用该工具。许多应用程序需要以“第一公民”方式安装在本机平台上,而不是放在类路径或模块路径上。
  • 原始字符串文字(Raw string literals),等到JDK 14才达到生产环境运行阶段。
  • switch表达式的生产版本,JDK将为其提供beta实现。switch语句将被扩展用作语句或表达式,因此两者都可以使用“传统”或“简化”作用域和控制流行为。

您可以   从jdk.java.net网站下载JDK 13版本。第一个JDK 13 beta版本可用于Linux,MacOS和Windows。