传智播客博学谷
微信号:boxuegu-
get最新最全的IT技能
免费领取各种视频资料
摘要:北京时间 9 月 26 日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可供生产环境中使用。
这也是自 Oracle 宣布以六个月为周期更新后发布的第一个长期支持版本。相比 Java 9 和 10 这两个仅提供半年技术支持的版本来说,JDK 11 的发布无疑对个人开发者以及企业都是一件好事。
下载地址如下:
https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html
1
Java 11:主要特性
最新发布的 JDK 11 共带来了 17 项更新:
181:Nest-Based Access Control(基于嵌套的访问控制)
309:Dynamic Class-File Constants(动态类文件常量)
315: Improve Aarch64 Intrinsics(改进 Aarch64 内部函数)
318:Epsilon: A No-Op Garbage Collector(Epsilon:No-Op 垃圾收集器)
320:Remove the Java EE and CORBA Modules(删除 Java EE 和 CORBA 模块)
321:HTTP Client (Standard)(HTTP 客户端)
323:Local-Variable Syntax for Lambda Parameters(Lambda 参数的变量语法)
324:Key Agreement with Curve25519 and Curve448(采用 Curve25519 和 Curve448 算法实现的密钥协议)
327:Unicode 10
328:Flight Recorder(飞行记录器)
329:ChaCha20 and Poly1305 Cryptographic Algorithms(ChaCha20 和 Poly1305 加密算法)
330:Launch Single-File Source-Code Programs(启动单文件源代码程序)
331:Low-Overhead Heap Profiling(低开销堆分配采样方法)
332: Transport Layer Security (TLS) 1.3(TLS 1.3 的传输层安全性)
333:ZGC: A Scalable Low-Latency Garbage Collector(Experimental)(ZGC:可扩展的低延迟垃圾收集器,在实验阶段)
335:Deprecate the Nashorn JavaScript Engine(弃用 Rhino JavaScript 引擎)
336:Deprecate the Pack200 Tools and API(弃用 Pack200 工具和 API)
简单介绍几个比较重要的新特性:
1、ZGC:可扩展的低延迟垃圾收集器
ZGC是一款号称可以保证每次GC的停顿时间不超过10MS的垃圾回收器,并且和当前的默认垃圾回收起G1相比,吞吐量下降不超过15%。
2、Epsilon:什么事也不做的垃圾回收器
Java 11还加入了一个比较特殊的垃圾回收器——Epsilon,该垃圾收集器被称为“no-op”收集器,将处理内存分配而不实施任何实际的内存回收机制。 也就是说,这是一款不做垃圾回收的垃圾回收器。这个垃圾回收器看起来并没什么用,主要可以用来进行性能测试、内存压力测试等,Epsilon GC可以作为度量其他垃圾回收器性能的对照组。大神Martijn说,Epsilon GC至少能够帮助理解GC的接口,有助于成就一个更加模块化的JVM。
3、增强var用法
Java 10中增加了本地变量类型推断的特性,可以使用var来定义局部变量。尽管这一特性被很多人诟病,但是并不影响Java继续增强他的用法,在Java 11中,var可以用来作为Lambda表达式的局部变量声明。
4、移除Java EE和CORBA模块
早在发布Java SE 9的时候,Java就表示过,会在未来版本中将Java EE和CORBA模块移除,而这样举动终于在Java 11中实施。终于去除了Java EE和CORBA模块。
5、HTTP客户端进一步升级
JDK 9 中就已对 HTTP Client API 进行标准化,然后通过JEP 110,在 JDK 10 中进行了更新。在本次的Java 11的更新列表中,由以JEP 321进行进一步升级。该API通过CompleteableFutures提供非阻塞请求和响应语义,可以联合使用以触发相应的动作。 JDK 11完全重写了该功能。现在,在用户层请求发布者和响应发布者与底层套接字之间追踪数据流更容易了,这降低了复杂性,并最大程度上提高了HTTP / 1和HTTP / 2之间的重用的可能性。
2
Java 11:删除了什么
Oracle JDK 将不再包含 JavaFX(OpenJDK 从未提供过)。相反,JavaFX 通过 OpenJFX 作为单独的下载提供,并且可以像任何 Java 应用程序中的任何其他库一样使用。
除 JavaFX 外,还将停止对 Applet 和 Java Web Start 的支持。如果仍然想使用 Java Web Start,那么必须保持在 JDK 8 的版本,直至 Oracle 停止免费更新后,花钱购买该服务。
另一个在 Java 11 中被弃用的 JavaScript 引擎 Rhino。预计它将在 Java 的未来版本中彻底消失。不过值得注意的是,Rhino 从未真正将自己断言为 Node.js 上的服务器端 JavaScript 实现基础。通过 GraalVM,Oracle 现在采用其他方式在 JVM 上本地运行其他编程语言。
顺便说一下,从 Java 11 开始,Java 运行时环境(JRE)将仅存在于服务器版本中,而不再存在于桌面中。但是,对于具有模块系统和 jlink 工具的桌面应用程序,开发者现在可以轻松创建或调整运行时环境。
3
你会选择更新吗
2019 年 1 月之后,Oracle将不会在其网站上发布 JavaSE 8商业使用的进一步更新下载。这意味着,在 2019 年 1月之后,开发者想要使用老版本只能付费了。从中也看出,Oracle在鼓励用户升级。
小谷来做个小调查:
所以,你会选择更新吗?
免费资料
领取专属 10元无门槛券
私享最新 技术干货