整理 | 弯月,责编 | 郭芮

头图 | CSDN 下载自视觉中国

出品 | CSDN(ID:CSDNnews)

近日,Oracle发布了Java 14版,这是自从Java采用六个月一次的发布周期之后的第五次发布。

此次的发布与之前的Java 11、12和13一样,离不开OpenJDK社区无数个人和组织的无私奉献。JDK 14修正了1986个JIRA问题,其中1458个来自Oracle的员工,另外528个来自独立开发者和其他公司的开发者的提交。

Java 14的新功能和改动

Java 14提供了16个主要的改进和变更,包括两个孵化器模块、三个预览特性、两个弃用的功能以及两个删除的功能。其中“孵化器模块”的意思是将尚未定稿的API和工具先交给开发者使用,以获得反馈,并用这些反馈进一步改进Java平台的质量。而“预览特性”则是规格已经成型、实现已经确定,但还未最终定稿的功能。它们出现在Java中的目的是收集在真实世界中使用后的反馈信息,促进这些功能的最终定稿。

最后,一些功能通过“弃用”的方式从JDK中移除,也就是说,开发者不应该继续使用这些功能,应当将使用这些功能的现有代码迁移到其他API上。使用Java 9引入的jdeprscan工具可以对jar文件进行静态扫描,找出使用了被弃用API的功能,从而方便开发者修改这些API调用。

JDK 14中的16项改动包括:

1.JEP 305:instanceof的模式匹配(预览):该预览功能给instanceof带来了模式匹配功能。有了该功能,开发者就不需要写大量的样板代码,从而提高生产力,还能实现更精确的类型安全的代码。

2.JEP 343:打包工具(孵化器模块):这个孵化器工具为开发者带来了一种打包Java应用的方式,可以将Java应用打包成平台所需的格式。开发者可以使用该工具,将现代应用程序的运行时和应用程序打包成单一的交付物。

3.JEP 345:G1的NUMA-Aware的内存分配:该功能改进了G1垃圾回收器在非一致内存访问(NUMA)系统上的整体性能。

4.JEE 349:JFR事件流:该功能可以公开JDK Flight Recorder(JFR)的数据,用于持续监视,从而简化各种工具和应用程序访问JFR数据的方式。

5.JEP 352:非易失性映射字节缓冲区(Non-Volatile Mapped Byte Buffers):该特性为JDK增加了一种文件映射模式,用于访问非易失性内存。非易失性内存能够持久保持数据,因此可以利用该特性来改进性能。

6.JEP 358:非常实用的NullPointerException:该特性改进了NullPointerException的可读性,能更准确地给出null变量的信息。该特性可以帮助开发者提高生产力,以及改进各种开发工具和调试工具的质量。

7.JEP 359:Record(预览特性):该预览特性提供了一种更为紧凑的语法,用于定义浅层不可变的数据。值得一提的是,该特性可以大幅减少定义类似数据类型时所需的样板代码,但它的最终目的是提供更好的数据建模方式。

8.JEP 361:switch表达式:这是JDK 12和JDK 13中的预览特性,现在是完整特性了。该特性规定,switch可以当作语句使用,也可以当作表达式使用。这可以简化日常的编码方式,也为模式匹配(JEP 305)特性打下了基础。

9.JEP 362:弃用Solaris和SPARC的移植:该JEP中,Solaris和SPARC的移植版被弃用,以后将被移除。

10.JEP 363:删除并行标记清理(Concurrent Mark Sweep,简称CMS)垃圾回收器:CMS垃圾回收器在两年前JDK 6的时代就被弃用,建议转用CMS的后继者G1回收器,而现在G1回收器已成为默认回收器好几年了。

11.JEP 364:macOS上的ZGC:尽管许多使用ZGC的用户都使用类Linux的环境,但在Windows和macOS上,人们也需要ZGC进行开发和测试。许多桌面应用也可以从ZGC中得到好处。因此,ZGC特性被移植到了Windows和macOS上。

12.JEP 365:Windows上的ZGC:同上。

13.JEP 366:弃用ParallelScavenge和SerialOld GC组合:Parallel Scavenge和Serial Old垃圾回收算法的组合被弃用,这种组合极少被用到。

14.JEP 367:删除Pack200工具和API:删除了pack200和unpack200工具,以及java.util.jar包中的Pack200 API。这些工具和API从Java SE 11就被弃用了。

15.JEP 368:文本块(预览第二版):文本块(Text Block)在Java 13中收到了第一版预览的反馈(JEP 355)后,增加了两个新的转移序列,于Java 14中作为新的预览特性出现。文本块的好处包括:使用跨行文本简化代码编写,增强Java程序中用字符串表示的其他语言的代码的可读性,解析新的转义序列等等。

16.JEP 370:外部内存访问API(Foreign-Memory Access API,孵化器模块 ):该孵化器模块引入了一个新的API,允许Java程序有效、安全地访问位于Java堆之外的外部内存。

工具支持

下列IDE支持Java 14:

  • JetBrains IDEA

  • Apache NetBeans

  • Eclipse IDE

一些流行的自动化构建工具也正在积极准备支持Java 14,比如Apache Maven及其Gradle 6.3插件开始支持Java 14。

参考链接:https://blogs.oracle.com/java-platform-group/the-arrival-of-java-14

【End】

防疫、复工如何并行?天云数据推出人工智能监测方案!到底如何做到事前预防,而不是事后诸葛亮?本周四晚8点天云数据VP陈勇为各位揭晓答案!扫描下方二维码免费报名

推荐阅读 

☞Siri 自动拨打 911、Google 建筛查网站、IBM 测药物成分,国际抗疫在行动!

☞百度成立互联网医院;钉钉招小学生产品体验师;iOS 13.4 上线 | 极客头条

☞人生苦短,不光要用Python,还要在VSCode里用

☞农村中专生逆袭记:证书等身,收到阿里、腾讯、滴滴大厂面试邀请

☞为什么要在油气行业中应用 IoT?这 8 个应用场景告诉你 IoT 在油气行业中可以做什么

☞数字合约如何将所有权下放?如何使用脚本系统将交易转换为可编程的智能合约?答案就在这篇文章里!

你点的每一个在看,我认真当成了喜欢

点击阅读原文,参与报名

Java 14 来了!相关推荐

  1. Java 14 :NullPointerException的处理新方式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | liululi 来源 | 公众号「锅外的大佬」 ...

  2. Spring Framework 5.2.5 发布,增加对 Java 14 的支持

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://www.oschina.net ...

  3. JDK/Java 14 正式发布!然而我还在用 Java 8...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | https://ww ...

  4. Java 14 可能带来什么新特性?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | 公众号「开源中国」 JDK/Java 13 在一个月前已 ...

  5. 甲骨文正式发布Java 14(Oracle JDK 14)

    甲骨文两年来,每六个月如约发布新版本的Java,Oracle JDK 14为开发人员带来创新功能和新特性预览.Oracle JDK 14增加了一些新特性来提高开发人员工作效率,这些新特性包括:对swi ...

  6. 甲骨文正式发布Java 14(Oracle JDK 14),下载下来尝尝鲜~~~

    Java一直以来都是深受软件开发者青睐的首选编程语言.伴随着Java 14创新功能的按时交付,对未来的周详规划以及对生态系统的持续投入,Java平台将继续为现代应用开发注入动力. 代码示例: publ ...

  7. 牛X!Eclipse 开始支持 Java 14~

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:十分钟了解 git 那些 "不常用" 命令个人原创+1博客:点击前往,查看更多 作者:way ...

  8. eclipse安装maven插件_牛X!Eclipse 开始支持 Java 14~

    随着JDK 14的发布,各大Java IDE也开始支持JDK 14.最新版本的Eclipse IDE 2020-03也于2020年3月18日发布,本文介绍如何通过Eclipse IDE来开发Java ...

  9. Java 14 发布了,终于可以扔掉Lombok了?

    2020年3月17日发布,Java正式发布了JDK 14 ,目前已经可以开放下载.在JDK 14中,共有16个新特性,本文主要来介绍其中的一个特性:JEP 359: Records 官方吐槽最为致命 ...

  10. java 8代码 改 java7_Java 8 到 Java 14,改变了哪些你写代码的方式?

    前几天,JDK 14 正式发布了,这次发布的新版本一共包含了16个新的特性. 其实,从Java8 到 Java14 ,真正的改变了程序员写代码的方式的特性并不多,我们这篇文章就来看一下都有哪些. La ...

最新文章

  1. 自回归模型PixelCNN 的盲点限制以及如何修复
  2. 【错误记录】反射内部类报错 ( Android 使用 Hook 时反射内部类报错 )
  3. Visual Studio Team System 2008 Team Suite (90-day Trial)(转)
  4. javascript调试常用工具讲解
  5. Javascript学习笔记1 数论
  6. 权限分配之权限的展示
  7. chrome 使用gpu 加速_一招解决 Chrome / Edge 卡顿缓慢 让浏览器重回流畅顺滑
  8. Android测试入门学习
  9. 一篇文章搞懂前端学习方法与构建知识体系,怎么做自己的职业规划
  10. Illustrator 教程,如何在 Illustrator 中使用钢笔工具创建作品?
  11. 非常易懂且全面的计算机科学概论知识总结
  12. 这届抢票软件为什么不行?
  13. Excel直接跳过隐藏行,粘贴数据到可见单元格
  14. 华为笔记本linux版电脑管家,一键全解决 华为MateBook电脑管家让您告别电脑烦恼...
  15. 如何***内网windows xp的几种思路和方法
  16. 汉字应用能力计算机上打印文字,宣传|《汉字应用水平等级及测试大纲》,你能考几级?...
  17. 计算机内存改成多少合适,32g内存需要设置虚拟内存吗?32g内存虚拟内存设置多少合适...
  18. 计算机设计大赛感言,平面设计大赛获奖感言
  19. ①、iOS-RxSwift基础控件的使用、RxSwift-Tableview的使用、RxSwift-SectionTableview结合RxDataSources使用、RxSwift 网络请求封装使用
  20. DOS命令:assoc

热门文章

  1. mssql查询过去一段时间数据库中执行过的语句及执行效率
  2. WebBrowser是IE内置的浏览器控件
  3. 问题-Delphi7中JSON遍历节点不支持使用IN处理方法?
  4. [转]C#利用委托跨线程更新UI数据
  5. Struts2漏洞分析,漏洞波及全系版本
  6. HDU.1009 FatMouse' Trade
  7. [Linux] 头文件加载顺序
  8. FakeAPP训练时错误【ResourceExhaustedError: OOM】解决方法
  9. linux 软件下载后无法安装不了怎么办,Firefox无法安装怎么办
  10. can接收进入两次中断_STM32的CAN2口无法进入接收中断