温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java11的新特性是什么

发布时间:2021-08-25 06:58:33 来源:亿速云 阅读:173 作者:chen 栏目:编程语言

这篇文章主要讲解了“Java11的新特性是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java11的新特性是什么”吧!

1. String API

字符串绝对是 Java 中最常用的一个类了,String 类的方法使用率也都非常的高,在 Java 11中又为 String 类带来了一系列的好用操作。

  1. isBlank() 判空。

    // 判空,blank里我放入了全角空格,半角空格,TABString blank = "    ";System.out.println(blank.isBlank());// 输出// true
  2. lines() 分割获取字符串流。

    // lines 返回一个 StreamString line = "a\nb\nc";Stream<String> lines = line.lines();// 使用 lambda 遍历lines.forEach(System.out::println);// 输出// a// b// c
  3. repeat() 复制字符串

    // 复制字符串String repeat = "我的微信:wn8398,";String repeat3 = repeat.repeat(3);System.out.println(repeat3);// 输出// 我的微信:wn8398,我的微信:wn8398,我的微信:wn8398,
  4. strip() 去除前后空白字符。

    // 去除前后空白String strip = "     https://www.wdbyte.com  ";System.out.println("==" + strip.trim() + "==");// 去除前后空白字符,如全角空格,TABSystem.out.println("==" + strip.strip() + "==");// 去前面空白字符,如全角空格,TABSystem.out.println("==" + strip.stripLeading() + "==");// 去后面空白字符,如全角空格,TABSystem.out.println("==" + strip.stripTrailing() + "==");// 输出// ==  https://www.wdbyte.com  ==// ==https://www.wdbyte.com==// ==https://www.wdbyte.com  ==// ==     https://www.wdbyte.com==

    这里注意,trim 只能去除半角空格,而 strip 是去除各种空白符。

2. File API

读写文件变得更加方便。

// 创建临时文件Path path = Files.writeString(Files.createTempFile("test", ".txt"), "https://www.wdbyte.com");System.out.println(path);// 读取文件// String ss = Files.readString(Path.of("file.json"));String s = Files.readString(path);System.out.println(s);// 结果// https://www.wdbyte.com

3. JEP 321 - HTTP Client

在 Java 11 中 Http Client API 得到了标准化的支持。且支持 HTTP/1.1 和 HTTP/2 ,也支持 websockets。

你可以像这样发起一个请求。

HttpClient client = HttpClient.newHttpClient();HttpRequest request = HttpRequest.newBuilder()        .uri(URI.create("https://www.hao123.com"))        .build();// 异步client.sendAsync(request, HttpResponse.BodyHandlers.ofString())        .thenApply(HttpResponse::body)        .thenAccept(System.out::println)        .join();// 同步HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());

更多的如同步异步请求,并发访问,设置代理等方式,可以参考 OpenJDK 官方文档。

Java11的新特性是什么

你现在还需要各种 HTTP Client 依赖包吗?

4. JEP 323 - Lambda 局部变量推断

在 Java 10 中引入了 var 语法,可以自动推断变量类型。在 Java 11 中这个语法糖可以在 Lambda 表达式中使用了。

var hashMap = new HashMap<String, Object>();hashMap.put("wechat", "wn8398");hashMap.put("website", "https://www.wdbyte.com");hashMap.forEach((var k, var v) -> {    System.out.println(k + ": " + v);});

这里需要注意的是,(var k,var v) 中,k 和 v 的类型要么都用 var ,要么都不写,要么都写正确的变量类型。而不能 var 和其他变量类型混用。

Java11的新特性是什么

image

<figcaption style="margin: 5px 0px 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; text-align: center; color: rgb(136, 136, 136); font-size: 14px;">Lambda 中 var 不能混用</figcaption>

5. JEP 330 - 单命令运行 Java

自从学习 Java 的第一天,我们就知道运行一个 Java 文件,要先用 javac 命令编译,再用 java命令运行,而现在只要一个 java 命令就可以运行了。

$ cat Main.javapublic class Main {    public static void main(String[] args) {        System.out.println("wechat:wn8398");    }}$ java Main.javawechat:wn8398

6. 免费的飞行记录器

商业版 JDK 中一直有一款低开销的事件信息收集工具,也就是飞行记录器(Java Flight Recorder),它可以对 JVM 进行检查、分析、记录等。当出现未知异常时可以通过记录进行故障分析。这个好用的工具在 Java 11 中将开源免费。所有人都可以使用这个功能了。

其他更新

  1. JEP 309 - 添加动态文件常量。

  2. JEP 318 - 添加 Epsilon 垃圾收集器。

  3. JEP 320 - 删除 Java EE 和 corba 模块(java.xml.ws, java.xml.bind, java.activation, java.xml.ws.annotation, java.corba, java.transaction, java.se.ee, jdk.xml.ws, jdk.xml.bind)。

  4. JEP 329 - 增加加密算法 chacha20,poly1305 的实现。

  5. JEP 333 - 引入实验性的 ZGC 垃圾收集器,保证停摆时间不会超过 10ms。

  6. JEP 335 - 废弃 Nashorn JavaScript 引擎

感谢各位的阅读,以上就是“Java11的新特性是什么”的内容了,经过本文的学习后,相信大家对Java11的新特性是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI