今晚 Java 9 将正式发布。Java 9 的新特性都列在官方页面当中,本文介绍值得你关注的其中几个点:java
新增的 java.lang.ProcessHandle
类丰富了对进程的操做,同时原有的 java.lang.Process
类的功能也被增强了。shell
可以改善程序运行时的多线程同步效率。缓存
这个特性通常不会在 Java 代码中直接使用,它经过对本地编译代码(即代码缓存)进行更好的组织,让 JRE 的运行效率有所提升。性能优化
这就是令 Java 9 跳票数次的罪魁祸首 Project Jigsaw。这里就很少说了。多线程
简称 JShell,方便对程序进行调试,以及快速检验 API 的可行性,你无须建立一个项目来学习 API,打开 JShell 便可。架构
ResourceBundle 的缺省编码问题一直是被吐槽的对象,非英文字符被转码为看不懂的形式,严重损害了代码的可读性。从 Java 9 开始,ResourceBundle 默认编码为 UTF-8。模块化
G1 进一步减小了 GC 时的停顿时间(GC pause time),其实它从 JDK 8u40 开始就已经十分完善,足以做为默认的垃圾收集器了。性能
在不少应用当中,字符串已经成为一个消耗内存的主要部分。经过优化字符串的占用空间,应用的内存使用能够获得明显改善。学习
若是你还在用 Java 6/7,那么上面这些性能方面的优化(还不算 Java 8 的优化)就足以让你尽快升级到 Java 9 了。优化
Java 9 还有其余一些方面的新特性,好比 jlink,支持 tiff 图片,支持 Unicode 8,支持 SHA-3,对 ECMAScript 6 的部分支持,优化对调用堆栈(Call Stack)的访问,HTML5 格式的 JavaDoc、经过利用最新架构的 CPU 指令来加速加密解密操做,等等。