在Java SE 8发布一年之后,Oracle于近日 发布了Java Development Kit 8 Update 40(JDK 8u40) ,该更新从多个方面改进了这一流行的企业级应用程序平台,包括内存管理的垃圾收集、本地包和JavaScript兼容性等内容。
该更新增强了垃圾收集功能,降低了释放系统资源时会造成长暂停的可能性,同时减少了类卸载等依赖于完整垃圾收集的重要操作。此外,在部署了多个JVM的系统上该特性能够降低内存的消耗,将每个JVM的内存控制在一定范围内,避免因内存不足而产生问题。JDK 8u40还增强了本地内存跟踪功能,让其在运行的时候不会对性能造成严重的影响,用户可以使用这一特性对JVM内存泄漏进行诊断。
本地包的改进让开发者能够开发“原生感觉的应用程序”,客户端不再需要安装已有的Java运行时环境。这些自包含的应用程序能够被部署在像Mac应用商店这样的地方,开发者对运行时和应用程序入口拥有完全的控制能力。
JDK 8u40还增强了JavaScript和动态语言的能力。对Nashorn JavaScript运行时的优化包括动态语言支持和类过滤器,后者可以让JavaScript代码通过一个过滤接口对Java类进行细粒度地访问。同时reduction中的Lambda和缓存增强降低了应用程序所需的内存空间并提升了动态语言的性能。
在JavaFX方面,该更新中的新特性允许现代化的JavaFX堆栈运行在Mac OS上,并能发布到Mac应用商店中。JavaFX媒介堆栈已经从QTKit和Quicktime迁移到新的AVFoundation架构中, 全面适配Mac OS X,借助于该功能,JavaFX媒体堆栈的开发人员将有机会在Mac应用商店上发布他们的应用。
为了简化Oracle Java SE 高级用户的使用,软件现在能够从命令行或者Java任务控制(JMC)中动态启用,不需要考虑原始的启动参数。同时,JDK 8u40提供了一个新的时区更新工具,该工具能够从IANA时间注册表数据库中消耗“初始”的数据(tzdata)规则,并将其转换成JRE所需要的格式。Java SE提供的这些能力目的是为了最小化部署、监控和维护的成本。
最后需要注意的是,Oracle宣布将会从4月份开始停止对发布近4年之久的Java SE 7平台的进行公共更新,对此有需要的公司需要签订相关的支持协议,但已有的Java SE 7平台将依然可以下载使用。
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。