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 项新特性。其中有两个特性被正式提了出来,还有一个特性则是预测性质,分别看看:

1)改进 NullPointerExceptions,通过准确描述哪些变量为 null 来提高 JVM 生成的异常的可用性。

该提案的作者希望为开发人员和支持人员提供有关程序为何异常终止的有用信息,并通过更清楚地将动态异常与静态程序代码相关联来提高对程序的理解。

2)非易失性映射的字节缓冲将添加新的 JDK 特定文件映射模式,该模式允许 FileChannel API 用于创建引用非易失性内存(NVM)的 MappedByteBuffer 实例。

NVM 使开发者可以跨程序构建和更新程序状态,而不会产生输入和输出操作通常需要的大量复制和翻译成本,这对于交易程序而言尤其重要。

该增强提案主要目标是确保客户端可以连贯有效地从 Java 程序访问和更新 NVM;第二个目标是使用 Unsafe 类中定义的受限制 JDK 内部 API 来实现此提交行为,因此可以由可能需要提交给 NVM 的 MappedByteBuffer 之外的其它类重用;另一个目标是允许现有 API 跟踪在 NVM 上映射的缓冲区,以进行监控和管理。

3)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 版本中。

作者:h4cd

来源:oschina.net/news/110479/jdk-14-new-features

- END -
推荐阅读:
1、

2、

3、

4、

5、

关注Java技术栈公众号在后台回复:Java,可获取一份栈长整理的最新Java 技术干货。

点击「阅读原文」和栈长学更多~

Java 14 可能带来什么新特性?的更多相关文章

  1. Java9发布回顾Java 8的十大新特性

    java9已经在北京时间9月22日正式发布,开发者可以在oracle jdk官网上下载到最新的jdk9. 今天,我们先来一起复习一下2014年发布的Java 8的十大新特性.先来喝杯java~~~ 按 ...

  2. Java学习:JDK8的新特性

    Java学习:JDK8的新特性 一.十大特性 Lambda表达式 Stream函数式操作流元素集合 接口新增:默认方法与静态方法 方法引用,与Lambda表达式联合使用 引入重复注解 类型注解 最新的 ...

  3. Java 13 即将发布,新特性必须抢先看!

    作者:h4cd 本文转载自开源中国(ID:oschina2013) 由于 Java 现在采取"半年发布一次新版本"的模式,所以 Java 12 的下一个版本 Java 13/JDK ...

  4. Java高新技术 JDK1.5之新特性

      Java高新技术  JDK1.5的新特性 知识概要:                 (1)静态导入 (2)可变参数 (3)增强for循环 (4)基本数据类型的自动拆箱和装箱 静态导入     ...

  5. Java 各个版本中的新特性

    新特性你知道多少? Java 8 Lambda 表达式 接口增加默认方法等 方法引用 流 Stream Java 9 模块系统 交互式工具jshell .of() 创建不可变集合 接口支持私有方法 更 ...

  6. Java基础20:Java8新特性终极指南

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  7. 发布倒计时!JDK11为我们带来哪些新特性?

    今年7月底,JDK11已经进入了Rampdown Phase Two阶段,这标志着该版本所有特性已经被冻结,不会有新的JEP会加入版本中. 这一阶段将会修复P1–P2级BUG,之后,JDK11预定于今 ...

  8. Xcode8 带来的新特性和坑

    Xcode8新特性 Interface Builder 随着14年的iPhone6和6P出来之后,iPhone的屏幕尺寸也越来越多,屏幕适配是一个需要解决的问题,以后不一定苹果又出什么尺寸的iPhon ...

  9. Java基础和JDK5.0新特性

    Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...

随机推荐

  1. 【shell】sed处理多行合并

    有这么一个题 文件格式 table=t1 name owner address table=t2 id text col1 comment col5 table=t3 prod_name price ...

  2. 【leetcode】Path Sum IV

    If the depth of a tree is smaller than 5, then this tree can be represented by a list of three-digit ...

  3. 参数类型*&是什么意思?

    前两天摸鱼聊天的时候遇到一个问题,一个链表的函数中,有一个参数显得很奇怪 (大概是一个样子的)ListNode<T>*& l 这个参数l除了用了一个*之外还用了一个&,直觉 ...

  4. 编译caffe-gpu-cuda及cudnn-tar 下载地址

    y下载 https://github.com/BVLC/caffe https://github.com/BVLC/caffe/archive/master.zip gcc caffe安装 有2个问题 ...

  5. 更改pip源地址为阿里云

    1.在用户名目录创建pip目录,在pip目录下创建pip.ini. 2.pip.ini中输入: [global] index-url = http://mirrors.aliyun.com/pypi/ ...

  6. Navicat使用与python操作数据库

    一.Navicat使用 1.下载地址: <https://pan.baidu.com/s/1bpo5mqj> 2.测试+链接数据库,新建库 3.新建表,新增字段+类型+约束 4.设计表:外 ...

  7. Nginx的正则表达式

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Ра ...

  8. Codeforces Round #403---C题(DFS,树)

    C. Andryusha and Colored Balloons time limit per test 2 seconds memory limit per test 256 megabytes ...

  9. lombok效率神奇使用

    Lombok效率神器 标签(空格分隔): Java Lombok简介及使用 Lombok 是一种 Java实用工具,可用来帮助开发人员消除Java的冗长,尤其是对于简单的Java对象(POJO), 它 ...

  10. [BZOJ1902]:[NOIP2004]虫食算(搜索)

    题目传送门 题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母. 来看一个简单的例子: 43#98650#45+8468#6633=444455069 ...