JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK 11 特性冻结!最全的 Java 11 API 变更提案一览相关的知识,希望对你有一定的参考价值。

自从上个月进入“减速(ramp-down)”阶段以来,JDK 11 的特性已经处于冻结状态。这些重大的变化已被列为 JEP(JDK Enhancement Proposal 特性增强提议)。此外,JDK 11 中也有很多除 JEP 之外的变化,但官方尚未总结。因此,本文将列出我所知道的 JDK 11 中的 API 变更。


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

String


lines()

字符串实例方法,使用专门的 Spliterator 来懒惰地提供源字符串中的行。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

repeat(int)

按照参数 int 提供的次数来重复字符串的运行次数。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

isBlank()

验证当前字符串是否为空,或者是否只包括空白字符(空白字符由 Character.isWhiteSpace(int) 验证)。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

strip()/stripLeading()/stripTrailing()

这三个方法的作用分别是去掉字符串头和尾的空白符、字符串头的空白符、字符串尾的空白符,基本与 trim()/trimLeft()/trimRight() 方法相同,不过它们的空白字符由 Character.isWhiteSpace(int) 验证。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

CharSequence


compare(CharSequence, CharSequence)

按字典顺序进行排序。

它被 CharSequence/StringBuffer/StringBuilder 中的 compareTo() 使用。因此,这三个类都实现了 Comparable。


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Character


toString(int)

JDK 11 使这个过程变得更加方便。

JDK10.0.1

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

JDK11ea14

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Path


of(String, String...)

此前我们需要使用 Paths.get()。现在,我们像其他类一样使用 of()。


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Files


writeString(Path, CharSequence)

我们可以使用该方法来保存一个 String 字符串。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

readString(Path)

我们可以使用该方法来读取一个 String 字符串。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Reader


nullReader()

使用该方法,我们可以得到一个不执行任何操作的 Reader。


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Writer


nullWriter()

使用该方法,我们可以得到一个不执行任何操作的 Writer。


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

InputStream


nullInputStream()

使用该方法,我们可以得到一个不执行任何操作的 InputStream。


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

OutputStream


nullOutputStream()

使用该方法,我们可以得到一个不执行任何操作的 OutputStream。


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Predicate


not(Predicate)

此前在需要反转条件的地方,我们选择不使用方法引用。现在相反,我们可以使用方法引用。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Collection


toArray(IntFunction)

此前,我们需要使用像 list.toArray(new String[list.size())]) 这样的无风格标记(non-stylish notation)来从一个集合创建一个类型化数组。现在,我们可以以风格标记(stylish notation)的方式进行编写。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Optional/OptionalInt/OptionalLong/OptionalDouble


isEmpty()

isPresent() 方法此前已经存在,现在我们使用 isEmpty() 方法。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

TimeUnit


convert(Duration)

该方法已经添加到 java.util.concurrent.TimeUnit 中。


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Pattern


asMatchPredicate()

到目前为止,只有 asPredicate() 方法,但现在我们还拥有 asMatchPredicate() 方法。

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览


JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

更多其他特性


ListSelectionModel

已添加 getSelectedIndices() / getSelectedCount() 方法

Thread

destroy()/stop(Throwable)

移除 destroy() 方法,保留 stop() 方法。

Policy

已移除 javax.security.auth.Policy。

ArrayIndexOutOfBoundsException

抛出的异常信息已修改:

JDK10.0.1

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

JDK11ea14

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

IndexOutOfBoundsException

在本次变更中,已在异常信息中移除 hyphens。

JDK10.0.1

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

JDK11ea14

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

System

arraycopy

JDK10

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

JDK11ea19

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

setProperty(String, String)

之前改变 java.home 会导致一些问题,现在问题已得到解决。

支持 Japanese New Era

Japanese Imperial Era 计划于 2019.5.1 改用新的规则。本次变更是作为 NewEra 占位符引入的。

在日本政府宣布之后,它将在 JDK 12.0.1 中进行更新。

JDK10.0.1

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

JDK11 ea18

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

目前我们还未能将 May 1st Heisei 31 作为我们的 JapaneseDate。

JDK10.0.1

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

JDK11 ea18

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

Base64

从 ea20 起,使用 AVX512 进行编码会变得更快,但在 Windows 上无法确定。

Boolean

parseBoolean

官方表示,在删除冗余的空检查后,它的速度变得更快。

JDK10

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

JDK11

JDK 11 特性冻结!最全的 Java 11 API 变更提案一览

还未确定是否存在性能差异。

TimSort

TimSort 是用于 Array.sort() 和 Collection.sort() 的主要算法。

但它有一个错误,主要发生在为某些序列抛出一个 ArrayIndexOutOfBoundsException 异常,不过似乎已修复,尚未确定。

声明:本文经授权转自开源中国(oschina2013),作者OSC-局长。


以上是关于JDK 11 特性冻结!最全的 Java 11 API 变更提案一览的主要内容,如果未能解决你的问题,请参考以下文章

JDK 11 进入特性冻结阶段,17 个最终 JEP 一览

学习充电JDK 11 进入特性冻结阶段,17 个最终 JEP 一览

行业资讯JDK 11 进入特性冻结阶段,17 个最终 JEP 一览

重磅:JDK11正式发布!史上最全特性完整解读!

浅谈JAVA11中新增的加密算法

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