Java8很香但还是想升级到Java11,教你怎么从Java8升级到Java11

本文介绍了从Java8升级到Java11的原因和过程,重点讲解了Java11的新特性,包括Unicode 10支持、Http Client成为JDK标准、动态分配Compiler Threads、优化的GC、TLS1.3更新等。同时,文章提供了一些建议和工具,如升级分析工具和针对新旧项目的策略,帮助开发者顺利过渡。
摘要由CSDN通过智能技术生成

Java11的新特性

1、更新支持到Unicode 10编码


Unicode 10(version 10.0 of the Unicode Standard),Unicode是一个不断在演进的行业标准,Java一直在与它保持一致兼容。

Java8已经更新了Unicode8.0-9.0,Java10更新后将达到16018个characters、18种blocks和10种scripts。

2、将Http Client作为JDK标准发布、


原来作为jdk补充的http类放在jdk.incubator.http包中,现在统一改到java.net.http包下,核心类有下面4个。

HttpClient

HttpRequest

HttpResponse

WebSocket

HttpClient client = HttpClient.newBuilder()

        .version(HttpClient.Version.HTTP_1_1)

        .connectTimeout(Duration.ofSeconds(3))

        .build();

HttpRequest request = HttpRequest.newBuilder().uri(URI.create("http://www.baidu.com")).build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.statusCode());    // 200

System.out.println(response.body());          // 百度页面的html

 

3、新增优化很多方法


java.util.Collection增加新方法toArray(IntFunction),集合转数组的不二之选。

String增加lines\stripLeading\stripTrailing等,一般项目都有StringUtils类。

java.io.InputStream增加构造方法

java.nio包下面很大类扩展了方法Channels\XXXBuffer等

4、支持动态分配 Compiler Threads


JVM启动参数新增-XX:+UseDynamicNumberOfCompilerThreads,动态的控制编程线程的数量,原来的编译线程默认会启动大量造成cpu和memory浪费。

5、GC能力大幅提升


低功耗可扩展GC(ZGC)模块是一个试验性的并发GC,在线程执行是ZGC会做一些重型回收工作,如string表清理等。执行周期在10ms内,处理heaps大小从MB到TB范围,目前只能支持linux和x64系统,除此外还有个处理memory分配的Epsilon GZ,有兴趣的可以自己研究。

6、堆分析能力提升:JVMTI</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值