标签:数加 对象 com handler trace 转换 root 系统 rgs
新增方法:
" ".isBlank(); // true
" Javastack ".strip(); // "Javastack"
" Javastack ".stripTrailing(); // " Javastack"
" Javastack ".stripLeading(); // "Javastack "
"Java".repeat(3);// "JavaJavaJava"
"A\nB\nC".lines().count(); // 3
很方便的将一个 Optional 转换成一个 Stream, 或者当一个空 Optional 时给它一个替代的。
在 Java11 中,在 var 上可以添加注解的语法格式。
//错误的形式: 必须要有类型, 可以加上var
//Consumer<String> con1 = (@Deprecated t) ->
System.out.println(t.toUpperCase());
//正确的形式:
//使用var的好处是在使用lambda表达式时给参数加上注解。
Consumer<String> con2 = (@Deprecated var t) ->
System.out.println(t.toUpperCase());
HTTP,用于传输网页的协议,早在 1997 年就被采用在目前的 1.1 版本中。直到 2015 年,HTTP2 才成为标准。
HTTP/1.1 和 HTTP/2 的主要区别是如何在客户端和服务器之间构建和传输数据。
在 Java11 中,增加了处理 HTTP 请求的的 HTTP Client API,该 API 支持同步和异步。它将替代仅适用于 blocking 模式的 HttpURLConnection
(HttpURLConnection是在HTTP 1.0的时代创建的,并使用了协议无关的方法),并提供对 WebSocket 和 HTTP/2 的支持。
package parzulpan.com.java11;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
/**
* @Author : parzulpan
* @Time : 2020-11-30
* @Desc : Java11 全新的 HTTP 客户端 API
*/
public class HttpTest {
public static void main(String[] args) {
try {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create("http://127.0.0.1:8080/test/")).build();
HttpResponse.BodyHandler<String> responseBodyHandler = HttpResponse.BodyHandlers.ofString();
// 同步
HttpResponse<String> response = client.send(request, responseBodyHandler);
String body = response.body();
System.out.println(body);
// 异步
CompletableFuture<HttpResponse<String>> sendAsync = client.sendAsync(request, responseBodyHandler);
sendAsync.thenApply(HttpResponse::body).thenAccept(System.out::println);
HttpResponse<String> response1 = sendAsync.get();
String body1 = response1.body();
System.out.println(body1);
} catch (IOException | InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
要运行一个 Java 源代码必须先编译,再运行,两步执行动作。
在 Java 11 中,通过一个 java 命令就直接搞定了,如以下所示:java Javastack.java
。
一个命令编译运行源代码的注意点:
在 Java 11 中,废除 Nashorn javascript 引擎,在后续版本准备移除掉,有需要的可以考虑使用 GraalVM。
ZGC(A Scalable Low-Latency Garbage Collector,可扩展的低延迟垃圾收集器),是一个并发, 基于 region, 压缩型的垃圾收集器, 只有 root 扫描阶段会 STW(stop the world)
, 因此 GC 停顿时间不会随着堆的增长和存活对象的增长而变长。
优势:
标签:数加 对象 com handler trace 转换 root 系统 rgs
原文地址:https://www.cnblogs.com/parzulpan/p/14131767.html