Java SE 11(18.9)中的API更新

Java SE 11也被命名为18.9(基于使用发布年份和月份的新命名方案),预计将在9月的最后一周发布GA。 频繁发布新JDK版本的新方法是允许语言创建者引入新功能,并向开发人员社区更快地进行API更新。

通常,API更新不会引起注意,并且会被一些重大更改所掩盖。 因此,我想到了枚举Java 11中可能没有的Java 10中的一些API更改。

我正在使用从此处下载的jdk-11-ea + 16构建

Character.toString(int)

此方法返回给定Unicode代码点的字符串表示形式,如下所示:

jshell> Character.toString(100)
$10 ==> "d"
jshell> Character.toString(66)
$7 ==> "B"

CharacterSequence.compare(java.lang.CharSequence,java.lang.CharSequence)

这将按字典顺序比较两个字符序列,如果第一个字符序列在字典上小于或等于第二个,则返回负,零或正。

词典上的意思是字典顺序或字母顺序。

jshell> CharSequence.compare("girl", "boy")
$12 ==> 5jshell> CharSequence.compare("girl", "girl")
$13 ==> 0jshell> CharSequence.compare("hello", "world")
$14 ==> -15

重复(int)

jshell> "**".repeat(5)
$15 ==> "**********"jshell> "**".repeat(-7)
|  Exception java.lang.IllegalArgumentException: count is negative: -7
|        at String.repeat (String.java:3147)
|        at (#16:1)jshell> "**".repeat(0)
$17 ==> ""jshell> "**".repeat(1)
$18 ==> "**"

isBlank()

jshell> String msg = "hello"
msg ==> "hello"jshell> msg.isBlank()
$22 ==> falsejshell> String msg = ""
msg ==> ""jshell> msg.isBlank()
$24 ==> truejshell> String msg = " "
msg ==> " "jshell> msg.isBlank()
$26 ==> true

strip(),stripTrailing(),stripLeading()

jshell> " hello world ".strip()
$29 ==> "hello world"jshell> "hello world    ".strip()
$30 ==> "hello world"jshell> "hello world    ".stripTrailing()
$31 ==> "hello world"jshell> "        hello world    ".stripLeading()
$32 ==> "hello world    "jshell> "    ".strip()
$33 ==> ""

lines()

jshell> String content =  "this is a multiline content\nMostly obtained from some file\rwhich we will break into lines\r\nusing the new api"
content ==> "this is a multiline content\nMostly obtained fro ... ines\r\nusing the new api"jshell> content.lines()
$36 ==> java.util.stream.ReferencePipeline$Head@5ec0a365jshell> content.lines().forEach(System.out::println)
this is a multiline content
Mostly obtained from some file
which we will break into lines
using the new api

java.nio.file.Path.of()

在此版本之前,有没有在工厂方法java.nio.file.Path ,虽然有一个方法java.nio.file.Paths 。 此版本在java.nio.file.Path中引入了一种工厂方法,该方法有两个变体:
1.将String放置到资源中
2.将URI位置带到资源 两者都显示如下:

jshell> Path uriPath = Path.of(new URI("file:///C:/Program%20Files/Java/jdk-11/release"))
uriPath ==> C:\Program Files\Java\jdk-11\releasejshell> Files.readAllLines(uriPath).forEach(System.out::println)jshell> Path filePath = Path.of("..", "release")
filePath ==> ..\releasejshell> Files.readAllLines(filePath).forEach(System.out::println)

Pattern.asMatchPredicate()

此API返回java.util.function.Predicate ,可用于测试给定的字符串是否与使用java.util.regex.Pattern编译的模式匹配

jshell> Pattern somePattern =  Pattern.compile("\\w+@\\w+[.]com")
somePattern ==> \w+@\w+[.]comjshell> Predicate<String> somePredicate = somePattern.asMatchPredicate()
somePredicate ==> java.util.regex.Pattern$$Lambda$26/0x00000008000d0840@34c4973jshell> somePredicate.test("sana@gmail.net")
$55 ==> falsejshell> somePredicate.test("sana@gmail.com")
$56 ==> truejshell> somePredicate.test("sana#@gmail.com")
$57 ==> false

与Java EE相关的API,即Corba,JAXB,JAX WS(Web服务)已被删除。 直到Java 10从孵化器移到其自己的模块java.net.http之前,孵化器中一直使用的HTTP客户端库。 我很快会在新的HTTP客户端上写一些帖子。

翻译自: https://www.javacodegeeks.com/2018/06/api-updates-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数字信号处理】卷积和乘法系列1之引言(含MATLAB代码)

引言 要了解 DSP 的许多方面,以及使用傅里叶分析 (FA) 的其他应用,以下几点很重要 了解卷积的过程要知道时间/频率域中的卷积/乘法 等价于 频域/时间域中的乘法/卷积会应用这些知识卷积是一个会引起很多混淆的过程,但使用采样数据(离散)比使用连续时间数据更容易理解。这是…

【数字信号处理】卷积和乘法系列2之AM调制、幅度谱和相位谱(含MATLAB代码)

关注公号【逆向通信猿】更精彩!!! 案例2的应用——幅度调制(AM) 能够预测卷积两个信号的结果是很有用的。一个明显的例子是 AM 调制(参见上一节 和下面的图 1),其中载波通过混合(混频)由基带信号调制。在频域中,这两个信号的频谱是卷积的。 在图1中,显示了幅度调制…

java方法传对象参数_Java方法中的参数太多,第2部分:参数对象

java方法传对象参数在上一篇文章中 &#xff0c;我研究了与方法和构造函数的长参数列表相关的一些问题。 在那篇文章中&#xff0c;我讨论了用自定义类型替换基元和内置类型以提高可读性和类型安全性。 这种方法使方法或构造函数的众多参数更具可读性&#xff0c;但并没有减少参…

VB语言与测量程序设计之水准网平差程序(任务8-3含代码,完整工程文件见CSDN资源)

一、程序总体设计 二、程序界面设计 对象属性设置 三、程序代码 矩阵计算类代码 文件名:Matrix.cls 操作矩阵的类 Matrix Option Explicit Const eps As Double = 0.00000001 缺省精度 Dim nRo

【数字信号处理】卷积和乘法系列3之傅里叶变换对

关注公号【逆向通信猿】更精彩!!! 声明:底部的小广告标签并不是博主所加!! 傅里叶变换对(Fourier Transform pairs, FTP) 我们考虑的第一个FTP从时间域中的梳状函数开始,这是一个简单地由相同幅度的规则放置的“冲激(spike)”组成的信号。下面的程序在时域中生成这样…

Gradle教程

1.简介 在本课程中&#xff0c;我们将学习Gradle &#xff0c;它是一个构建工具和一个依赖管理系统&#xff0c;与Maven和Ant非常相似&#xff0c;并且是专门为构建基于Java的项目而设计的。 与Maven和Ant构建系统不同&#xff0c;Gradle不使用XML。 它实际上是基于Groovy构建…

【定时同步系列6】Gardener误差检测算法原理

关注公号【逆向通信猿】更精彩!!! 引言 离散时间符号定时同步方法 如下图所示为比较常用的一种符号定时同步的离散时间方法,通常由三个基本单元组成离散时间锁相环,分别为:定时误差检测器(TED)、环路滤波器和插值控制。其中,插值器和TED作用相当于鉴相器,插值控制相…

glassfish_RIP GlassFish –感谢所有的鱼。

glassfish我们都听说过。 昨天&#xff0c;JavaEE和GlassFish的官方路线图更新已发布 。 从标题开始&#xff0c;整个帖子基本上是关于一件事的&#xff1a;今天我们知道的GlassFish Server已从完整的产品转为玩具产品。 从太阳到Oracle的漫长道路 从一开始&#xff0c;GlassF…

【定时同步系列7】位(符号)定时同步之模1插值控制和递归插值控制原理

关注公号【逆向通信猿】更精彩!!! 引言 本节主要讨论符号定时同步结构中的插值控制模块,如下图所示,插值控制模块的目的是为内插器提供第 k k k个基点索引 m ( k ) m(k)

活性GWT

介绍 在过去的4到5年中&#xff0c;反应式编程的普及程度得到了极大的提高。 这可以告诉我们&#xff0c;反应性应用程序的用例现在比以往任何时候都有效。 后端系统上的压力增加了&#xff0c;因此需要用最少的资源来处理这种压力。 响应式编程被认为是在减少资源消耗的同时提…

【数字信号处理】卷积和乘法系列3之测不准原理

关注公号【逆向通信猿】更精彩!!! 声明:底部的小广告标签并不是博主所加!! Heisenberg测不准原理 信息在时域中的扩展(尖峰之间的距离)与其在频域中的对应扩展之间的这种关系是Heisenberg不确定性原理的一个例子。时域中的扩展(方差)乘以频域中的扩展具有不能被突破的…

【数字信号处理】卷积和乘法系列3之傅里叶变换对II

关注公号【逆向通信猿】更精彩!!! 声明:底部的小广告标签并不是博主所加!! 采样 傅里叶变换对(FT)很重要的原因是,如果有一个连续时间 (CT) 信号,则可以通过将信号乘以梳状函数来对其进行采样,产生的样本将只是尖峰处的值。采样过程产生离散时间 (DT) 信号,因为采…

使用密钥加密码加密_创建基于密码的加密密钥

使用密钥加密码加密本文讨论了创建基于密码的加密PBE密钥。 首先提醒您以前的要点–通常&#xff0c;在实际操作中&#xff0c;应将PBE密钥用作主密钥&#xff0c;该主密钥仅用于解锁工作密钥。 这具有三个主要优点&#xff1a; 您可以有多个密码&#xff0c;例如&#xff0c…

【定时同步系列8】QPSK基带调制+Gardener定时误差检测+解调误码率曲线之MATLAB并行仿真姊妹篇一

结果预览 误码率曲线 关于反馈型定时同步技术的原理已经陆陆续续讨论了好久了,涉及的各个细节内容较多,且不容易理解,整个流程框图如下所示: 符号定时同步的离散时间方法(异步) 其中, interpolator模块在博客: 【定时同步系列5】Farrow内插器结构原理和MATLAB实现 TED模…

【定时同步系列9】QPSK基带调制+Gardener定时误差检测+解调误码率曲线之MATLAB并行仿真姊妹篇二

关注公号【逆向通信猿】更精彩!!! 上一篇主要对Gardener定时算法进行了MATLAB仿真,其中插值控制字 W ( n ) W(n) W(n)作为环路滤波器的输出,采用迭代的方式进行更新,这也是《数字调制解调技术的MATLAB与FPGA实现》书中代码所采用的的方法! 对于这一点,此次采用另一种…

VS下一种很好的远线程注入的dll调试方法

一、Detorus-master的编译 下载源代码 https://github.com/microsoft/detours 用管理员身份启动 x64 Native Tools Command Prompt for VS 2017 或 x86 Native Tools Command Prompt for VS 2017 用cd命令进入到Detours-master目录下,分别运行以下命令: call "D:\Pr…

eclipse 隐藏项目_前5个有用的隐藏Eclipse功能

eclipse 隐藏项目Eclipse是野兽。 仅凭其力量才能超越其神秘感的设备。 有人将其称为连续体跨功能器 。 其他人则称它为透湿器 。 是的&#xff0c;它是如此之大&#xff0c;需要花费数年才能掌握。 然后&#xff0c;您的经理出现并告诉您&#xff1a;我们正在使用NetBeans。 …

vs2017+qt5.12 未将对象应用设置到对象的实例问题 -解决方法

环境&#xff1a;Win7 VS2017 Qt5.12 使用VS2017的 Qt VS Tools 打开Qt Example下的pro文件时出现如下错误提示&#xff1a; 在这里插入图片描述 查看.qmake.stash 文件如下&#xff1a; 在这里插入图片描述 QMAKE_CXX.QMAKE_MSC_VER 1200 这个配置是问题的根源 经过一天的艰…

使用Spring Security和OAuth 2.0保护Spring微服务架构

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 每个开发人员都希望能够更快&#xff0c;更有效地进行构建以支持规模。 使用Spring构…

Matlab库函数firrcos、rcosfir、rcosine和rcosdesign区别之根升余弦滤波器系数推导详解

一、根升余弦(Square root raised cosine)滤波器系数求解推导 h ( t ) = 4 R cos ⁡ ( ( 1 + R ) π t / T ) + sin