摘要:本文是个人在企业内部分享使用的简要大纲,列举了的重要更新,文章的结构较简单,也不规范,鉴于近期写若干文章时总会忘记一些新特性所处的版本,特将此大纲流留用。
本文是个人在企业内部分享使用的简要大纲,列举了JAVA9-12的重要更新,文章的结构较简单,也不规范,鉴于近期写若干文章时总会忘记一些新特性所处的版本,特将此大纲流copy留用。
一 JAVA9 新特性
1.Java Platform Module System/ Modular Java Application Packaging模块化系统及类加载器分级
2.jshell
3.Multi-Release JAR Files 多版本的jar包
4.Jlink 工具
5.Segmented Code Cache 代码片段缓存
6.Dynamic Linking of Language-Defined Object Models 动态链接语言定义模型
7.Unified JVM Logging 统一JVM日志
8.将G1作为默认垃圾收集器,并deprecated CMS.
9.进程API
10.变量句柄
11.字符串内部实现优化(字符数组变字节数组+编码方式)
12.发布订阅框架
13.集合工厂方法
14.自旋暗示
15.对象序列化数据过滤
16."栈旅行者"
17.Milling Project Coin(鬼知道该怎么翻译).
Allow @SafeVargs on private instance methods. //允许在私有实例方法上标注@SafeVargs注解
Allow effectively final variables to be used as resources in the try-with-resourcesstatement. //try-with-resource 语法支持实际final的变量
Allow the diamond with anonymous classes if the argument type of the inferred type is denotable.//允许对可推荐出类型的匿名内部类使用钻石符号.
Complete the removal, begun in Java SE 8, of the underscore from the set of legal identifier names.//移除java8中已经开始的,以下划线作为完整标识符名称
Add support for private interface methods.//接口中可定义私有方法.
18.扩大的unicode集
19.孵化官方http client.
二 JAVA10
1.局部变量类型推断
2.统一定义的 GC接口.
3.g1垃圾收集器的并行full gc
4.应用类数据共享
5.thread local 握手
6.扩展unicode语言标签.
三. JAVA11
1.unicode10支持
2.标准化java9中孵化的http客户端
demo:同步式编程
public void get(String uri) throws Exception {
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(uri)) .build(); HttpResponseresponse = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }
demo:响应式编程
public CompletableFuture
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(uri)) .build(); return client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) .thenApply(HttpResponse::body); }
demo:响应式编程-并发
public void testConcurrentRequests(){
HttpClient client = HttpClient.newHttpClient(); Listurls = List.of("http://www.baidu.com","http://www.alibaba.com/","http://www.tencent.com"); List requests = urls.stream() .map(url -> HttpRequest.newBuilder(URI.create(url))) .map(reqBuilder -> reqBuilder.build()) .collect(Collectors.toList()); List >> futures = requests.stream() .map(request -> client.sendAsync(request, HttpResponse.BodyHandlers.ofString())) .collect(Collectors.toList()); futures.stream() .forEach(e -> e.whenComplete((resp,err) -> { if(err != null){ err.printStackTrace(); }else{ System.out.println(resp.body()); System.out.println(resp.statusCode()); } })); CompletableFuture.allOf(futures .toArray(CompletableFuture>[]::new)) .join(); }
注:以上代码是分享时从网上转来的,因为此文是从内部wiki粘过来,出处已忘。接下来打算发一篇CompletableFuture有关的文章,最近对响应式编程的兴趣更加深刻了。
3.Collection.toArray(IntFunction) Default 方法
4.编译器线程的懒分配
5.体验版zgc大杀器(缺少类和元数据卸载)
6.Epsilon GC no-op 体验版
7.少代价的堆分析工具jvmti
8.nests, an access-control context ,省去编译器插入accessibility-broadening bridge methods
9.一些属性变事实的只读.java.home, user.home, user.dir, user.name等
10.Reference类不再支持克隆
11.使用classpath进行编译运行时,默认解析的模块策略变更:root模块集在此版本变更为所有可见的导出api的系统模块,唯一可见的改变是java.se模块不在默认解析.
12.SelectableChannel可以在select操作正在进行中注册.
13.DatagramChannel.send Throws AlreadyConnectedException Instead of IllegalArgumentException
14.为并发gc提供新的性能记数器
15.g1支持自适应的引用处理时的线程数.所有gc支持stw阶段的并行自适应.
16.模块路径下支持类数据共享cds.
四.JAVA12
1.unicode11支持
2.jvm常量api
3.简写的数字格式:1k
4.zgc支持并发类数据卸载
5.支持交替在内存设备上分配老年代,支持相应功能的设备如"非易变-双列直插式内存模型"(NV-DIMM).
6.switch case支持语句的同时支持表达式.case ... ->
7.更好的支持http重定向(HttpURLConnection)
8.g1可能在并发标记周期交回内存.
9可终止的g1混合gc
10.让g1在空闲时自动交回已提交但未使用的内存.
11.Shenandoah 低停顿gc体验版.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/74962.html
摘要:内部类,用于对和异常进行包装,从而保证对进行只有一次成功。是取消异常,转换后抛出。判断是否使用的线程池,在中持有该线程池的引用。 前言 近期作者对响应式编程越发感兴趣,在内部分享JAVA9-12新特性过程中,有两处特性让作者深感兴趣:1.JAVA9中的JEP266对并发编程工具的更新,包含发布订阅框架Flow和CompletableFuture加强,其中发布订阅框架以java.base...
摘要:拆解虚拟机的基本步聚如下首先,要等待到自身成为唯一一个正在运行的非守护线程时,在整个等待过程中,虚拟机仍旧是可工作的。将相应的事件发送给,禁用,并终止信号线程。 本文简单介绍HotSpot虚拟机运行时子系统,内容来自不同的版本,因此可能会与最新版本之间(当前为JDK12)存在一些误差。 1.命令行参数处理HotSpot虚拟机中有大量的可影响性能的命令行属性,可根据他们的消费者进行简...
摘要:借助它来统计我们程序的执行时间,带给非常多的方便和优雅。且,且,且设置为了当前时间。 相关阅读 【小家java】java5新特性(简述十大新特性) 重要一跃【小家java】java6新特性(简述十大新特性) 鸡肋升级【小家java】java7新特性(简述八大新特性) 不温不火【小家java】java8新特性(简述十大新特性) 饱受赞誉【小家java】java9新特性(简述十大新特性) ...
摘要:经历月份开放的简历,收到了蛮多询问和面试,算是招人旺季,需要跳槽的小伙伴抓住机会。现在是面试了家公司左右,有些高频问题会标记次数总次数,可供大家参考。最后祝大家面试顺利,拿到心仪的,写错的地方请不吝赐教,谢谢。 经历 7月份开放的简历,收到了蛮多询问和面试,算是招人旺季,需要跳槽的小伙伴抓住机会。一开始广泛看面试题,没抓住重点复习,有很多平时也没怎么用到,导致一开始面试的时候,问的问题...
阅读 780·2021-11-09 09:47
阅读 1567·2019-08-30 15:44
阅读 1141·2019-08-26 13:46
阅读 2105·2019-08-26 13:41
阅读 1265·2019-08-26 13:32
阅读 3770·2019-08-26 10:35
阅读 3517·2019-08-23 17:16
阅读 447·2019-08-23 17:07