Java11新特性
导读:简介 JDK 11 于2018年9月25日正式发布。作为自java 8 后的首个LTS版本,势必需要了解一下都有哪些新特性。 新特性 本文总结一些贴近实际开发中相关的特性作讨论,并不记录11所有的新特性 源文件直接运行 直接通过 jav...
简介
JDK 11 于2018年9月25日正式发布。作为自java 8 后的首个LTS版本,势必需要了解一下都有哪些新特性。
新特性
本文总结一些贴近实际开发中相关的特性作讨论,并不记录11所有的新特性
源文件直接运行
直接通过 java HelloWorld.java 执行 Java 源代码,不需要手动来编译。
新的工具类 HttpClient
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://www.baidu.com/"))
.build();
//同步
HttpResponseString>
response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
//异步
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
输出:
200
!DOCTYPE html>
!--STATUS OK-->
html>
...... /html>
!DOCTYPE html>
!--STATUS OK-->
html>
...... /html>
- 之前版本中的 HttpClient 为尝试版,java 11正式纳入
- Java 11 中,HttpClient 的包名由 jdk.incubator.http 改为java.net.http,并通过CompleteableFuture实现非阻塞
String类增加新api
String s = "\rddd\nrr";
StreamString>
lines = s.lines();
lines.forEach(System.out::println);
String s1="g";
String repeat = s1.repeat(3);
System.out.println(repeat);
String ss=" 9 ";
String strip = ss.strip();
System.out.println(strip);
输出:
ddd
rr
ggg
9
- String strip() 去除前后的空格
- String stripLeading() 去除前面的空格
- String stripTrailing() 去除后面的空格
- boolean isBlank() 判断是否为空,或者只含有空格
- Stream lines() 依据行终止符切割字符串,行终止符:\n,\r,\r\n
- String repeat (int count) 将字符串重复 count 次,返回拼接后的新串
Optional新增api
- isEmpty 判断是否为空
Stream新增api
StreamInteger>
integerStream = Stream.of(1, 2, 3, 4, 5);
StreamInteger>
newStream = integerStream.takeWhile(x ->
x 4);
newStream.forEach(x ->
System.out.println(x));
输出:
1
2
3
- Stream.of() 创建一个流
- takeWhile 从流中一直获取判定器为真的元素,一旦遇到元素为假,就终止处理,优势是不用遍历整个集合就可以获取到想要的数据
- dropWhile 和takeWhile 相反
var类型增强
ListString>
list = Arrays.asList("ac", "ad");
String title = list.stream().map((var x) ->
x.toUpperCase()).collect(Collectors.joining(" "));
- 可以在 lambda 中使用 var 进行类型推导
- 个人看法实际开发中用处很少
飞行纪录器
商业版 JDK 中一直有一款低开销的事件信息收集工具,也就是飞行记录器(Java Flight Recorder),它可以对 JVM 进行检查、分析、记录等。当出现未知异常时可以通过记录进行故障分析。这个好用的工具在 Java 11 中将开源免费。所有人都可以使用这个功能了。
感兴趣的可以研究一下,实际开发中用的少。
集合转数组
ListString>
s = Arrays.asList("ac", "ad");
引用
- https://openjdk.java.net/projects/jdk/11/
https://www.oracle.com/java/technologies/downloads/#
https://docs.oracle.com/en/java/javase/11/
版本说明:https://www.oracle.com/java/technologies/java-se-support-roadmap.html
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Java11新特性
本文地址: https://pptw.com/jishu/312731.html