Java JDK 11删除了CORBA,Java EE和JavaFX支撑,但添加了十几个首要新功用。

Java Development Kit(JDK)11现已遍及可用,可供出产运用,提高了工作效率,并供给了完成HTTP/2的HTTP客户端API。

Java Standard Edition(SE)11有16个首要功用更改。Java 11还经过删除CORBA和Java EE(最近更名为Jakarta EE)模块以及删除JavaFX而失去了一些功用 ,JavaFX现在可作为独立技能运用。

在Java 11中,Oracle已将主线存储jdk/jdk分叉到jdk/jdk11安稳存储库。推送到jdk/jdkjdk/client的更改现在标记为JDK 12.安稳存储库能够承受选定的过错修正,如果取得同意,则能够依据JDK发布过程承受后期增强。

Oracle标准Java完成的最新版别是一个长期支撑(LTS)版别,它将得到Oracle至少8年的商业支撑。到2026年将供给Bug修正和安全更新。新的LTS版别每三年发布一次,JDK 17将于2021年发布,这将是下一个LTS版别。中期版别将每六个月发布一次。

哪里能够下载JDK 11

您能够从Oracle Technology Network 下载JDK 11。

Java 11 JDK中的新功用

JDK 11有16个新功用:

  • 经过lang.Math在Aarch64处理器上完成sin,cos和log函数的新内涵函数,改善Aarch64内涵函数。该提案着重专用的CPU体系结构特定的代码模式,可提高应用程序和基准功用。

  • 依据嵌套的拜访操控引入了嵌套,这是一种与Java言语中嵌套类型概念一致的拜访操控上下文。嵌套答应逻辑上属于同一代码实体的类,但编译为不同的类文件以拜访彼此的私有成员,而无需编译器插入可拜访性扩展桥接办法。

  • 传输层安全性(TLS)1.3,其间TLS协议的这种大修将适用于JDK 11,然后供给显着的安全性和功用优势。可是,没有方针支撑TLS 1.3的每个功用。为了最大极限地下降不兼容的风险,TLS 1.3默认会完成向后兼容模式。应用程序能够依据需要关闭或翻开此模式。

  • Nashorn JavaScript引擎与JJS东西的弃用,旨在将来删除它们。鉴于ECMAScript言语构建和API的快速调整和修改,Oracle发现Nashorn难以保护。

  • HTTP客户端(标准),它标准化了JDK 9中引入并在JDK 10中更新的孵化HTTP API客户端。API供给非阻塞恳求和呼应语义CompleteableFutures,能够链接到触发器依靠操作。在JDK 9和10中孵化之后,现在异步的完成简直现已完全重写.RX Flow概念现已被推入完成中,消除了支撑HTTP / 2所需的许多自定义概念。现在能够更轻松地跟踪数据流,从用户级恳求发布者和呼应发布者到底层套接。这下降了复杂性并最大化了HTTP / 1和HTTP / 2之间重用的或许性。

  • 被称为“无操作”收集器的Epsilon废物收集器将处理内存分配,而不完成任何实践的内存回收机制。Epsilon的用例包括功用测试,内存压力和虚拟机接口。它也能够用于短期工作。

  • lambda参数的局部变量语法应该将隐式类型表达式中的方式参数声明的语法与局部变量声明的语法对齐。这将答应var 在声明隐式类型的lambda表达式的方式参数时运用。

  • 将扩展Java类文件格局以支撑新的常量池方式CONSTANT_Dynamic。方针是下降开发新方式的可完成类文件束缚的本钱和中断。

  • 与现有的椭圆曲线Diffie-Hellman计划相比,与Curve25519和Curve448密码学的亲近协议应该更加有效和安全。依据IETF的说法,两条椭圆曲线Curve25510和Curve448能够完成恒守时刻完成和无异常的标量乘法,这种乘法更能抵抗一系列的旁道进犯,包括守时和缓存进犯。该提案的方针包括API和密钥协商计划的完成,以及独立于渠道的全Java完成的开发。可是,作为提案的一部分,模块化算法完成的复杂性和奇妙性存在风险。

  • Flight Recorder将供给一个低开支的数据收集结构,用于对Java应用程序和HotSpot JVM进行毛病排除。Flight Recorder已成为Oracle商业JDK的一项功用,但其源代码将移至开放式存储库以使该功用遍及可用。Iclouded将是用于生成和运用数据作为事情的API,供给缓冲机制和二进制数据格局以及启用事情的装备和过滤。该提案还要求为OS,HotSpot和JDK库供给事情。

  • 升级渠道API以支撑Unicode版别10.0,然后使Java坚持最新。估计将在以下类别中供给支撑:

    • Character, String在lang包中
    • NumericShaper在awt.font包中
    • Bidi,BreakIterator和Normalizer在text包
  • 实施ChaCha20和Poly1305加密算法。ChaCha2020是一种相对较新的流密码,能够替代旧的,不安全的R4流密码。ChaCha20将与Poly1305验证器配对。将供给ChaCha20和ChaCha20-Poly1305密码完成,运用crypto.CipherSpiAPI 在SunJCE(Java密码术扩展)供给程序中完成算法。

  • 增强Java启动程序以运转作为Java源代码的单个文件供给的程序,因此这些程序能够直接从源代码运转。在学习Java的早期阶段编写小实用程序或开发人员时,单文件程序很常见。此外,单个源文件或许会编译为多个类文件,这会添加打包开支。在这些情况下,有必要在运转之前编译程序仅仅依据传统的不必要的步骤。

  • 低开支堆分析,供给了一种能够经过JVM东西接口拜访Java堆分配的办法。这项工作的方针是以低开支的方式获取有关这些分配的信息,能够经过编程接口拜访,并能够对一切分配进行采样。实施独立性和供给关于实时和死堆的数据也是方针。糟糕的堆办理或许导致堆耗尽和废物收集颠簸。解决此问题的大多数东西都短少特定分配的调用站点,这些信息关于调试内存问题至关重要。

  • Pack200和Unpack200东西以及Pack200 API的弃用util.jar。Pack200是.jar文件的紧缩计划,旨在下降应用程序打包,传输和交给的磁盘和带宽要求。项目负责人表明,保护本钱和低运用率并不能证明其保存是合理的。

  • Z废物收集器(ZGC)是一种实验性的、低推迟的废物收集器,用于处理巨细从相对较小的堆到非常大的堆,巨细为许多tb级的堆。经过运用ZGC,暂停时刻不该超过10ms,与运用G1收集器相比,应用程序吞吐量减少不该超过15%。ZGC还为将来的特性和优化打下根底。Linux/x64将是第一个取得ZGC支撑的渠道。