Java 11 对比于 Java 8 做了哪些改动,哪些优化
Posted 简简单单OnlineZuozuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 11 对比于 Java 8 做了哪些改动,哪些优化相关的知识,希望对你有一定的参考价值。
文章目录
- Java 11 对比于 Java 8 做了哪些改动,哪些优化
- 传送门
- `Process` 新增了关键字 var
- `Process` 自带了 HTTP Client 模块
- `Process` String 处理增强 , 新增了一些常用方法
- `Process` InputStream 增强
- `Process` 集合处理增强 ,新增了一些常用方法
- `Process` 函数式编程增强 , Stream 支持截止结算
- `Process` 文件读写增强 , 支持直接把文件读写为字符串
- `Process` 可以直接运行 Java 文件,而不需要先 Javac
- `Process` Java 11 比 Java 8 性能提升在 15% 以上
- `Process` 支持 JShell ,进行交互式编程
- `Process` 其它支持
- 参考资料
Java 11 对比于 Java 8 做了哪些改动,哪些优化
如果觉得本文对你有帮助,可以一键三连支持,谢谢
传送门
Portal
ZGC 详细介绍 PDF
Process
新增了关键字 var
var
关键字具有如下特性
- 只能用于局部变量上
- 声明时必须初始化
- 不能用作方法参数
- 不能在 Lambda 表达式中使用
- 支持类型推断
Process
自带了 HTTP Client 模块
- 支持 HTTP 2 并向下兼容 HTTP 1.1
- 性能优异
下面是一个简单使用的 Demo
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://openjdk.java.net/"))
.build();
client.sendAsync(request, BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
Process
String 处理增强 , 新增了一些常用方法
新增 isBlank
方法用于判空
新增 repeat
方法用于重复字符串内容,拼接新字符串
新增 strip
stripLeading
stripTrailing
方法用于去除空白字符
新增 lines
方法用于把字符串切割并得到一个 Stream 对象
Process
InputStream 增强
新增 transferTo
方法用于把输入流转成输出流
Process
集合处理增强 ,新增了一些常用方法
集合类 List
Map
Set
新增了 of
copyOf
方法
用于创建或者拷贝集合
Process
函数式编程增强 , Stream 支持截止结算
新增了 dropWhile
和 takeWhile
方法 ,可以支持截止结算
dropWhile
,对于有序的stream,从头开始去掉满足条件的元素,一旦遇到不满足元素的就结束
takeWhile
,对于有序的stream,从头开始保留满足条件的元素,一旦遇到不满足的元素就结束
其它
1、通过重载iterate方法用于限制无限流范围
2、可以将Optional对象直接转为stream
Optional.of("Hello openJDK11").stream()
.flatMap(s -> Arrays.stream(s.split(" ")))
.forEach(System.out::println);
3、可以为Optional对象提供一个默认的Optional对象
System.out.println(Optional.empty()
.or(() -> Optional.of("default"))
.get());
Process
文件读写增强 , 支持直接把文件读写为字符串
直接提供了 Files.writeString
Files.readString
方法用于读写文件
Process
可以直接运行 Java 文件,而不需要先 Javac
可以直接以命令行 java xxx.java
运行类文件,而不会产生 class 文件
Process
Java 11 比 Java 8 性能提升在 15% 以上
- Epsilon 低开销的垃圾回收器
- ZGC 可伸缩低延迟垃圾收集器
- 在 Linux 容器中获得更好的性能 ,来自于 Java 10 ,也兼容 Docker
- 模块化 ,来自于 Java 9 ,避免了不必要的加载
Process
支持 JShell ,进行交互式编程
通过 JShell ,可以像 Python 那样在命令行进行编程了
Process
其它支持
1、支持 Unicode 10
2、新增了 ChaCha20 ,Poly1305 两种加密算法 ,用以代替 RC4
3、支持 TLS 1.3 协议
参考资料
Reference Resources
JDK 11 文档
Reference Resources
Java 11 新特性介绍
本文地址 https://wretchant.blog.csdn.net/article/details/117825216
博客地址 https://wretchant.blog.csdn.net/
以上是关于Java 11 对比于 Java 8 做了哪些改动,哪些优化的主要内容,如果未能解决你的问题,请参考以下文章