在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
今年三月份,Java发布了最新的版本Java14。本次发布的Java14更新了大量的内容,包括了JEP364、JEP365、JEP366、JEP367、打包功能、Nul、lPointerException异常信息、File API、switch语句、NUMA、JFR、Record、Solaris和SPARC端口、CMS垃圾收集器和instanceof。下面我们一起来看看这些更新的特性吧!
1、JEP364
JEP 364针对MacOS提供了ZGC垃圾收集器。它将ZGC垃圾收集器移植到了macOS。正如JEP351中的描述,该JEP的功能还包括使用收集器释放未使用的设备内存。自Java13开始就支持此功能。ZGC的macOS实现包含两个部分:在macOS上支持多重映射(multi-mapping)内存;ZGC支持不连续预留内存。
2、JEP365
JEP 365实际上和JEP 364一样。JEP 365针对Windows提供了ZGC垃圾收集器支持。大多数ZGC代码都与平台无关,不需要为Windows修改。由于早期版本没有预留内存必须的API,因此不支持Windows 10和Windows Server 1803之前的版本。ZGC的Windows实现进行了以下工作:支持多重映射内存、堆内存任意区域映射与取消映射操作和堆内存任意区域提交和撤销提交操作等等。
3、JEP366
JEP366包含垃圾收集器,它的目标是弃用Parallel Scavenge和Serial Old垃圾收集算法的组合。除了弃用-XX:+UseParallelGC-XX :- UseParallelOldGC组合之外,-XX:UseParallelOld GC选项也被弃用,因为它的作用是取消老年代并行GC,支持老年代串行GC。因此,任何与UseUseParallelOldGC选项有关的用法都会输出警告。
4、 JEP367
Pack 200是JavaSE 5.0中JSR 200实现的JAR文件压缩方案。Java14从java.util.jar包中移除了pack200和unpack200工具以及pack200 API。这些工具和API在JavaSE 11中已废弃,会在随后的版本中移除。该JEP最终会从JDK主版本中移除3种类型。即之前标记 @Deprecated(forRemoval = true) 注解的基础模块:java.util.jar.Pack200、java.util.jar.Pack200.Packer、java.util.jar.Pack200.Unpacker
5、JEP368
在Java中,想要把HTML、XML、SQL或JSON代码片段嵌入到代码中通常难以阅读和保留。并且为了克服此问题,Java14 引入了文本块(Text Block)。文本块包含零个或多个字符,这些字符由开始分隔符和结束分隔符包围。
6、JEP370
许多流行的Java库和程序都支持访问外部存储器,例如Ignite、MapDB、Memcached和Netty的ByteBuf API。这样可以避免垃圾回收(比如维护大型缓存)、跨进程共享内存、通过将文件内存映射进行序列化和反序列化带来的开销以及引入的不可预测性。然而,Java API没有提供适合的外存访问解决方案。Java14通过JEP 370引入了高效的Java API,使得Java应用程序能够安全有效地访问Java堆外内存。外部存储API提出了三个重要的抽象:MemorySegment、MemoryAddress和MemoryLayout。
7、打包功能
该特性是一种能够简化安装过流程的打包功能,能解决应用所需的各种依赖项。有时仅提供一个JAR文件是不够的,还需要提供原生安装包。打包工具还可以作为其它技术的补充。jpackage工具把Java应用打包成平台特定格式的包,其中包含应用所有的依赖项。即一组普通JAR文件或模块的集合。支持的包格式: Linux:deb和rpm、macOS:pkg和dmg、Windows:MSI和EXE。
8、NullPointerException异常信息
Java14对JVM生成的NullPointerException异常信息进行了改进。程序提前终止时,新特性将为开发者和技术支持人员提供有用的信息。由于NPE几乎可以出现在程序中的任何位置,尝试捕获它们并从中恢复通常不太可行。开发人员只能靠JVM确认NPE实际的发生时间。
9、File API
Java 14对MappedByteBuffer进行了更新,将部分文件数据加载到非易失性存储器(NVM)中。NVM非易失性存储是指类似ROM(只读存储器)、闪存、硬盘等存储器,即使关闭电源数据也不会丢失。易失性存储器比如RAM,如果关闭电源则无法保存数据。API唯一的变化是加入了一个新枚举供FileChannel客户端使用。表示请求映射位于NVM支持的文件系统而非传统文件系统。
10、switch语句
Java14扩展了switch语句的功能,可以把switch作为表达式使用。支持箭头(->)操作符生成或返回值。该特性在JDK12和JDK13中是预览功能。
11、NUMA
非一致性内存访问是一种将微处理器集群配置为多处理系统的方式,因此可以在本地共享内存、提高性能并扩展系统能力。Java14实现了NUMA内存分配优化,提升G1在大型计算机上表现。G1中的堆是一组固定大小区域。虽然指定-XX:+UseLargePages选项可以使用大页面,多个区域可以组成一个物理页面,但是一个区域通常是一组物理页面。如果指定+XX:+UseNUMA选项,初始化JVM时上述将把区域平均分布在所有可用NUMA节点上。
12、JFR
Java14提供了一个新的API,JDK Flight Recorder(JFR)可以通过它持续监视进程内与进程外部应用程序。使用非Stream方式记录相同的事件集,开销可能甚至小于1%。事件流将与非Stream方式同时执行。jdk.jfr.consumer包位于 jdk.jfr模块中,扩展了异步订阅事件的功能。
13、Record
这是JDK14中一个预览功能。使用record精简类声明代码。定义一个数据类需要编写很多低效重复的模板代码:构造函数、accessor、equals()、hashCode()、toString()等。Java计划使用record精简这些重复代码。
14、Solaris和SPARC端口
Java14弃用了Solaris/SPARC、Solaris/x64和Linux/SPARC端口,未来可能将它们移除。取消对这些端口的支持,能让OpenJDK社区的贡献者加速开发新功能,推动平台向前发展。
15、CMS垃圾收集器
Java14删除了CMS垃圾收集器。不仅停用CMS编译,从源代码中删除了gc/cms目录中的内容,而且删除了仅限CMS的选项。
16、instanceof
instanceof操作符用来检查对象引用是否为指定的Type实例,检查的结果使用boolean返回。Java14对instanceof操作符进行了改进,加入了模式匹配。改进后的instanceof让实现逻辑变得清晰,不用在条件判断后再为对象强制类型转换。
if (!(obj instanceof String str)) {
.. str.contains(..)..// 不必再声明str对象进行强制类型转换
} else {
.. str....
}
关于Java14发布的更新内容,想必大家看到这里已经有了一定的了解了。更多关于Java的最新资讯尽在博学谷,欢迎大家关注博学谷资讯栏目~
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java程序员面试必备 经典Java面试题分享
Java程序员是企业软件开发的核心人员,所以企业在招聘Java程序员的时候都会经过严格的选拔,包括面试与笔试环节,其核心是为了考察Java程序员的技术掌握能力以及工作中解决问题的能力。而且通过面试题,程序员还可以了解目前企业比较核心的技术要求是什么。所以作为Java程序员在研究新技术的同时也要多看一下面试题分享。下面就和大家分享Java程序员面试必备的一些经典Java面试题。
6057
2019-06-18 17:19:17
高并发下的架构解决方案附案列讲解
众所周知,互联网分布式系统架构设计必须考虑高并发,高并发也是开发者常常会面临的一个技术难题。如何控制库存避免超卖?怎么实现线程间数据处理的同步?本文将以红包雨系统业务为例,为大家详细阐述业务痛点和系统设计的方法,帮助大家梳理解决问题的思路,构建系统思维的能力。
7104
2020-07-15 18:32:55
女生学Java好就业吗?适合编程吗?
女生学Java好就业吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练都可能成为一名优秀的Java开发工程师,女生的实力也是不容置疑的,且女生学Java还具备一定的优势。
5405
2021-02-03 15:58:09
博学谷Java架构师课程主要讲解哪些内容?
Java架构师课程内容主讲:互联网微服务前沿技术栈、大型互联网分布式架构、全景消息通信实战、架构师源码深度剖析、海量数据处理、服务实战演练篇、大型项目性能优化、软件架构设计攻略、架构师武器库、手撕面试官、黑马顺风车实战项目、面向面试的算法实战、通用解决方案、人工智能、数据挖掘等内容。接下来我们具体来看下。
3282
2022-09-29 18:43:00
自己适不适合当一名Java程序员,从这几点判断
随着互联网的迅猛发展,编程开始进入越来越多人的视野,Java作为后端语言的扛把子,自然身价暴涨,成为了新生代年轻人最热衷的职业选择之一。来,干了这杯“Java”!
2134
2022-10-21 18:46:07
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息