Java 11新地物与性能改进于2018年9月发布,Java 11是一款长期支持(LTS)发布,成为自Java 8以来最重要的里程碑之一.
对于规划迁移的团队来说,Java 11提供了令人信服地组合的新语言特征,API增强,和下行性能的改进.
在本文中,我们将探索影响最大的变化,以及它们如何影响现实世界的应用.
为什么Java 11 Matters Java 11是Java 8之后的首个LTS发布,意味着它得到了扩展支持和安全更新.
与非LTS发布(9和10)不同的是,它是为了生产稳定性而设计的,这就是许多企业从8个直接跳到11个的原因.
语言和API增强
1.
Lambda参数Java 10引入了本地变量的可本地变量语法.
Java 11 扩展到 lambda 参数, 允许您一致应用注释 。
2.
新弦法 该类获得了几种能减少锅炉板的方便方法.
注:不同之处在于它使用.,正确处理Unicode白空字符.
3.
文件读取/写出方便方法 读取和写出字符串现在是一个单行。
4.
在Java 9中引入作为孵化器的新HTTP客户端(标准化),API现已标准化。
它支持HTTP/2和WebSocket,并提供同步和同步的请求处理.
5.
运行的单一文件源代码 您现在可以直接运行一个 Java 源文件, 而无需明确的编译—— 理想的脚本和快的原型 。
不需要步骤。
性能改进
1.
Epsilon垃圾收集器(Experimental) Epsilon GC是一个"不开放"的垃圾收集器,负责分配内存但从未回收.
可用于性能测试,短期工作,并测量GC间接费用.
在不受GC干扰的情况下将其用于基准分配率.
不要在典型的长期生产服务中使用它——一旦内存耗尽,应用程序就会崩溃.
2.
Z垃圾收集器(Experimental)ZGC是一个可伸缩,低纬度的垃圾收集器,为大型堆积物(多地字节)所设计,暂停时间在10m以下,而不论堆积大小.
ZGC同时完成大部分工作,使得它对耐久性敏感的应用非常理想.
它在后期发行(Java 15)中成为了生产准备,但Java 11是它最初出现的地方.
3.
改进后的G1垃圾收集器 默认的G1 GC在Java 11中收到了多处增强: 通过一个并列的全GC算法(之前为单行)来更快地完成完整的GC.
更好地处理中止的混合收藏。
这些更改会减少仍然使用默认收藏器的应用程序最坏的暂停时间 。
4.
Flight Recorder Now Open Source Java Flight Recorder (JFR),曾为商业功能,现为开源,并被收录于OpenJDK.
它提供低头剖面和诊断数据收集。
与JDK任务控制(JMC)相结合,JFR使您深入了解应用行为,运行成本最低(通常低于1%).
从 Java 8 中移除并贬值的地物迁移 ?
注意这些去除:Java EE和CORBA模块(,等)被去除.
必要时将JAXB和JAX-WS作为外部依赖.