1、新增 HttpClient 客户端
简介
这个功能在 JDK9 中引入并在 JDK10 中得到了更新,最终在 JDK11 中发布,支持 HTTP1.1
和 HTTP/2。
常用工具类和接口:
- HttpClient.Builder HttpClient 构建 ⼯具类
- HttpRequest.Builder HttpRequest 构建 ⼯具类
- HttpRequest.BodyPublisher 将 Java 对象转换为可发送的 HTTP request body 字节流, 如 form 表单提交
- HttpResponse.BodyHandler 处理接收到的 Response Body
Get 请求
HTTP2 协议的强制要求 https,如果 ⽬标 URI 是 HTTP 的,则 ⽆法使 ⽤ HTTP 2 协议。
private static void testHttp2() {
var httpClient = HttpClient.newBuilder()
.connectTimeout(Duration.ofMillis(3000))
//指定版本
.version(HttpClient.Version.HTTP_2)
.build();
var request = HttpRequest.newBuilder()
.timeout(Duration.ofMillis(3000))
.header("key1", "v1")
.header("key2", "v2")
.uri(uri1)
.build();
try {
var response = httpClient.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
System.out.println(response.version());
} catch (Exception e) {
e.printStackTrace();
}
}
2、javac 和 Java 命令优化
我们在 jdk11 以前运行 Java 程序,命令如下
#编译
javac xxx.java
#运行
java xxx
jdk11 以后运行 Java 程序,命令如下
# 本地不会产生class文件
java xxx.java
3、ZGC(可伸缩的低延迟垃圾回收器)-实验阶段
ZGC,是一个可伸缩的低延迟垃圾收集器。 它旨在实现以下目标:
- 暂停时间不要超过 10 毫秒
- 暂停时间不会随堆大小的增加而增加,能够在很大的堆内存中进行高效垃圾回收。
Zgc 的核心是一个并发垃圾收集器,这意味着所有繁重的提升工作(标记、压缩、引用处理、字符串表清理等)都是在 Java 线程继续执行时完成的。 这大大限制了垃圾收集对应用程序响应时间的影响。
4、Epsilon GC
Epsilon GC 是一种新的实验性无运行垃圾收集器。 Epsilon GC 只处理内存分配,不实现任何内存回收机制。 它对于性能测试非常有用,可以对比其他 gc 的成本及效率。 它可以用来在测试中方便地确定内存占用和内存压力。
5、移除方法
方法 Thread.destroy ()和 Thread.stop (Throwable)已被删除。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于