JDK\/Java 14可能带来什么新特性?
JDK/Java 13 在一个月前已经发布,该版本带来了 5 大新特性,笔者观察到其中的 Text Blocks(文本块)特性似乎被讨论最多。
文本块特性与常见的 Python """any input""" 特性一样,它支持多行字符串文字,可以不需要使用大多数转义序列,同时可以让开发人员控制格式。虽然这不是特别复杂的特性,但对于开发中想将 HTML 代码引入 Java 来说是极大的便利,代码可读性也极大提高。
关于 Java 13 的其它新特性这里不赘述,感兴趣的话可以看看文末推荐的几篇内容。这里想写的其实是:按照惯例,可以开始盯着 Java 14 的新特性了。
JDK 14 现在处于 Early-Access(EA,早期访问)阶段,按照发布周期正式版本将于明年 3 月 17 日发布。
目前最新版本是 build 17,各个 build 的更新说明可以查看:https://jdk.java.net/13/release-notes。
本文引用 InfoWorld 的报导,介绍一下目前 JDK 14 中可能会出现的 3 项新特性。其中有两个特性被正式提了出来,还有一个特性则是预测性质,分别看看:
改进 NullPointerExceptions,通过准确描述哪些变量为 null 来提高 JVM 生成的异常的可用性。该提案的作者希望为开发人员和支持人员提供有关程序为何异常终止的有用信息,并通过更清楚地将动态异常与静态程序代码相关联来提高对程序的理解。
-
非易失性映射的字节缓冲将添加新的 JDK 特定文件映射模式,该模式允许 FileChannel API 用于创建引用非易失性内存(NVM)的 MappedByteBuffer 实例。
NVM 使开发者可以跨程序构建和更新程序状态,而不会产生输入和输出操作通常需要的大量复制和翻译成本,这对于交易程序而言尤其重要。
该增强提案主要目标是确保客户端可以连贯有效地从 Java 程序访问和更新 NVM;第二个目标是使用 Unsafe 类中定义的受限制 JDK 内部 API 来实现此提交行为,因此可以由可能需要提交给 NVM 的 MappedByteBuffer 之外的其它类重用;另一个目标是允许现有 API 跟踪在 NVM 上映射的缓冲区,以进行监控和管理。
Switch Expressions 在 JDK 12 与 13 中都是预览状态,预计在 JDK 14 中成为稳定特性。switch 表达式扩展了 switch 语句,使其不仅可以作为语句(statement),还可以作为表达式(expression),并且两种写法都可以使用传统的 switch 语法,或者使用简化的“case L ->”模式匹配语法作用于不同范围并控制执行流。这些更改将简化日常编码工作,并为 switch 中的模式匹配(JEP 305)做好准备。
JDK 14 EA 版本下载地址:https://jdk.java.net/13
最后,需要注意的是 EA 阶段的特性也有可能永远不会出现在最终的 JDK/Java 14 正式 GA 版本中。
回到本文开头,关于 Java 13 的相关内容(阅读原文查看):
JDK/Java 13 发布
JDK 13 新特性详解(作者 @木九天 )
Java 没有创新了吗?(作者 @GuoMengyue )
全网最新最简单的 OpenJDK13 代码编译(作者 @LieBrother )
Java 13 新特性及实战案例(作者 @waylau )
开源中国征稿啦!
开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 400 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。
现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿
- Java程序内存分析:jdk自带的jmap能为我们带来什么
- 学Java的同学看过来,JDK13即将发布,新特性会是什么?
- Java程序内存分析:jdk自带的jmap能为我们带来什么
- JAVA JDK1.5-1.9新特性
- JAVA——生产者与消费者以及JDK1.5以后新特性
- Java8中你可能没听过的10个新特性
- 黑马程序员----------java基础知识之JDK5.0新特性总结
- java基础之jdk1.5的几个新特性及若干类的使用
- Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性
- java中的<?><T><E>详解Jdk5.0新特性Generic Types (泛型)
- Java发展:各版本JDK新特性 JVM发展 Java技术应用发展
- jdk7 新特性-Java语言的动态性-脚本语言支持api-脚本引擎01
- 委托是什么?匿名方法是什么?在C# 3.0中,Lambda表达式是什么?扩展方法是什么?LINQ是什么?您觉得C# 3.0中还有哪些重要的特性,它们带来了什么优势?BCL中哪些类库和这些特性有关?您平时最常用哪些
- Java中JDK和JRE的区别是什么?它们的作用分别是什么?
- Compiz 0.9.2 将带来什么新特性
- 你可能没听过的 Java 8 中的 10 个特性
- Java可以做什么及可以给我们带来什么?
- Java中集合泛型带来了什么好处?
- java基础总结大全jdk1.5的新特性
- Java大数据之路--jdk特性