Java 10新特性前瞻
极客时间编辑部
讲述:丁婵大小:1.35M时长:02:57
从 Java 9 发布到现在已经过去两个月了,根据最新的发布计划,距离下一个 Java 版本发布只有四个月时间。Java 10 的新特性还在确认当中,新的特性和增强一般通过 JEP(Java Enhancement Process)或 JSR(Java Community Process)标准请求进行跟踪。因为 Java 10 的时间线较短,范围也相对较小,所以 Java 10 的变更将通过 JEP 进行跟踪。
目前有望被包含在 Java 10 中的特性是那些已经处于 Targeted 或 Proposed 状态的 JEP,它们包括:
286:本地变量类型推断
296:统一 JDK 仓库
304:垃圾回收器接口
307:G1 的并行 Full GC
310:应用程序类数据共享
312:ThreadLocal 握手机制
JEP 296 是一次纯粹的清理工作,而 JEP 304 加强了不同垃圾回收器的代码隔离,并为垃圾回收器引入更简洁的接口。
JEP 304 意味着厂商可以更自由地选择特定的 GC 算法来构建 JDK,社区也在努力弃用甚至移除 CMS(Concurrent Mark Sweep)垃圾回收器,只是目前还没有可用的替代品。
比较有意思的变更或许是 JEP 286,增强的本地变量类型推断可以让开发者免去很多变量申明模板代码。这一特性有可能在 Java 开发者中引起热议。
其他三个变更都将在性能方面带来一些影响。
JEP 307 解决了 G1 垃圾回收器的一个问题。截止到 Java 9,G1 的 Full GC 采用的是单线程算法,因此,G1 在发生 Full GC 时会严重影响性能。JEP 307 的目的就是要采用并行 GC 算法,在发生 Full GC 时可以使用多个线程进行并行回收。
JEP 310 对类数据共享(CDS)进行了扩展,JVM 可以将一些类记录到一个共享的压缩文件里,在下一次启动时可以将这个文件映射到 JVM 进程,以此来减少启动时间。该文件也可以在多个 JVM 间共享,在同一个机器上运行多个 JVM 时,这样做可以减少内存占用。
该功能在 Java 5 中就已存在,但截止到 Java 9,该功能只允许 bootstrap 类加载器加载压缩的类。JEP 310 的目的是扩展该功能,让应用程序和自定义类加载器也能加载压缩的类。该特性目前仅在 Oracle JDK 中可用,OpenJDK 并不包含该特性。
JEP 312 旨在改进虚拟机性能,在应用程序线程上调用回调不再需要执行全局虚拟机安全点操作,这意味着 JVM 可以停止单个线程。
从整体来看,Java 10 似乎并没有包含重大的新特性或性能改进。这是可以理解的,毕竟这是新发布周期下的第一个版本。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论