Java 11新特性的详细解释。JDK 11已经于 2018年9月25日正式发布,那么Java 11主要包含哪些新特性呢?
JDK 11是Java SE 11平台版本11的开源参考实现,由JSR 384在Java Community Process中指定。
阿里巴巴是中国唯一的JCP委员会成员公司,参与Java规范制定。
该版本的功能和时间表是通过JEP流程提出和跟踪的,并由JEP 2.0提案进行了修订。 使用JDK Release Process(JEP 3)生成发布。
1、Java11 主要新特性 详解
181:嵌套访问控制 Nest-Based Access Control
详解:
Java 11中引入了一个名为nest的新访问控制上下文,它与Java中的术语“嵌套类型”相关联。 它允许逻辑上属于同一代码实体的类,但是可以为特定的类文件进行编译。 可以在没有编译器需要用于这种访问的辅助方法的情况下实现相应的私有访问控制。
309:动态类文件常量Dynamic Class-File Constants
详解:
Java类文件格式在Java 11中支持新形式CONSTANT_Dynamic。 加载CONSTANT_Dynamic时,会将生成委托给bootstrap方法,类似于invokedynamic调用所发生的操作。
315:改进Aarch64内部函数Improve Aarch64 Intrinsics
详解:
改进了AArch64处理器的现有字符串和数组内部函数以及java.lang.Math函数sin,cos和log的新CPU体系架构上的特定代码模式。
318:Epsilon:No-Op垃圾收集器,Epsilon: A No-Op Garbage Collector
详解:
Java 11中将引入一个新的垃圾收集器,它在分配内存时不实现任何实际内存回收机制的GC。 一旦可用的Java堆耗尽,JVM将关闭。
320:删除过期的Java EE和CORBA模块Remove the Java EE and CORBA Modules
详解:
Java EE和CORBA模块将从Java SE 11平台和JDK11中删除。
321:HTTP客户端(标准)HTTP Client (Standard)
详解:
标准化HTTP客户端API,这些API在 JDK 9中加入,并在JDK 10中进行了更新。
323:改进Lambda参数的本地变量语法Local-Variable Syntax for Lambda Parameters
详解:
Java 11中引入了关键字var,用于声明隐式类型的lambda表达式的参数。 这使隐式类型的lambda表达式的语法适应局部变量声明的语法,保持一致。 示例:(var x,var y) - > x.process(y)//隐式类型的lambda表达式
324:与Curve25519和Curve448的关键协议Key Agreement with Curve25519 and Curve448
详解:
从RFC 7748实现加密图形加密算法方案Curve25519和Curve448规范。 可以保证更安全地交换密钥数据。
327:Unicode 10规范
详解:
将现有平台API更新为Unicode标准10.0版。
328:飞行记录器 Flight Recorder
详解:
Flight Recorder工具从应用程序、JVM和操作系统中收集rizhi数据,这些数据可以帮助分析和解决Java应用程序和HotSpot JVM的故障。
329:ChaCha20和Poly1305密码算法ChaCha20 and Poly1305 Cryptographic Algorithms
详解:
根据RFC 7539中的ChaCha20和Poly1305算法实现流加密。 取代旧的和不安全的RC4流密码算法。
330:启动单文件源代码应用程序Launch Single-File Source-Code Programs
详解:
扩展Java启动程序,可以启动由单个源代码文件组成的Java程序。 此外,应该可以通过所谓的“shebang文件”在脚本中启动。
331:低性能开销的堆分析与监控功能Low-Overhead Heap Profiling
为Java堆分配提供可通过JVMTI访问的抽样监控与分析机制。
详解:
332:传输层安全性规范(TLS)1.3 Transport Layer Security (TLS) 1.3
实现TLS协议,版本1.3(传输层安全性协议)。
333:ZGC:可扩展的低延迟垃圾收集器(实验性质)ZGC: A Scalable Low-Latency Garbage Collector(Experimental)
详解:
推出新的Z垃圾收集器(ZGC),承诺低延迟。 GC暂停时间低于10毫秒,高可扩展性高达数TB,与G1垃圾收集器相比,应用程序吞吐量降低了不到15%。 ZGC将作为实验性功能集成到JDK 11中,并初步支持Linux / x64平台。
335:弃用JavaScript引擎Rhino Deprecate the Rhino JavaScript Engine
详解:
JavaScript引擎Rhino,相应的API和工具jjs被标记为“已弃用”。 从JDK 11版本中删除。
336:弃用Pack 200工具包和API Deprecate the Pack200 Tools and API
详解:
java.util.jar中的API Pack200应标记为“已弃用”,彻底过期。 Pack 200是Java 5中引入的JAR文件的压缩方案,目前被认为是过时方案,不在使用。
2、阿里巴巴Java千人群
欢迎加入阿里Java群,目前超过1600人,直播课程,阿里Java专家。