工欲善其事,必先利其器。作为老牌军 Java 在发行二十多年的今天,战胜了 C 和 C++,成为诸多开发者的宠儿,且如今从其更新速度来看,也是不甘落后。
今年的 9 月 21 日,大家期待已久的 Java 9 正式发布,现在开发者即将在几个月后就可以使用下一代 Java —— Java 10。十二月中旬,计划中的 Java 10 开发工具包升级节奏已经逐渐放缓。所以在目前阶段,产品升级后只能修复 P1 到 P3 的错误(https://www.infoworld.com/article/3183502/java/oracle-sets-priorities-for-java-9-bug-fixes.html)。
JDK 10 何时发布?
JDK 10 是 Java 10 标准版的部分实现,将于 2018 年 3 月 20 日发布,改进的关键点包括一个本地类型推断、一个垃圾回收的“干净”接口。
Oracle 已经为 Java 设定了六个月的发行计划。之前本打算根据发行的年份和月份命名升级版和后续版,这样的话第一个版本就会被称为 Java 18.3, 但这个计划后来被中止了。
如何下载 JDK 10?
用户要先加入早期使用者计划,然后才可以下载 JDK 10 测试版:http://jdk.java.net/10。
JDK 10 的新改进有哪些?
JDK 10 的主要功能包括:
-
一个局部变量类型推断,通过增强语言特性将类型推断扩展到局部变量,目的是减少与编码相关的“仪式”,同时保持对静态类型的安全承诺。
-
一个干净的垃圾收集器接口,用来改善垃圾收集器源代码之间的隔离效果,这样可以为HotSpot 虚拟机中的内部垃圾收集代码提供更好的模块化功能,也可以更容易向 HotSpot 添加新的垃圾收集器。
-
并行、完整的 G1 垃圾收集器,通过实现并行性来改善最坏情况下的延迟问题。
-
启用 HotSpot 将对象堆分配给用户指定的备用内存设备(如 NVDIMM 内存模块),这个特性也侧面预示了未来的系统可能会采用异构的内存架构。
-
在 Linux / x64 平台上以实验性方式启用基于 Java 的即时编译器(https://www.infoworld.com/article/3187868/application-development/oracles-java-on-java-experiment-picks-up-steam.html)。
-
将 JDK 的多个存储库合并成一个,简化开发。目前的代码库被分解成了多个库,容易出现源代码的管理问题。
-
应用程序数据共享,通过跨进程共享通用类的元数据,减少空间占用及启动时长。
-
线程本地握手,不执行全局 VM 安全点也能对线程执行回调,同时实现单线程停止回调。
-
JDK 提供了一组默认证书,开源 Java SE 的 CA程序,对开发人员更具吸引力。
JDK 10 的开发包括哪些阶段?
目前,Oracle 的 Java SE 下载页面(http://www.oracle.com/technetwork/java/javase/downloads/index.html)还没有提供对 JDK 10 的访问,因为在最终版本确认之前,JDK 10 还有一些其他的开发阶段,包括:
-
2018 年 1 月 11 日:在所有支持的平台上,对所有计划完成至少一次的测试。
-
2018 年 1 月 18 日:减速阶段,只修复“ showstopper ”的 Bug。
-
2018 年 2 月 22 日:最终版本确认。
从 9 月 21 日期待已久的 JDK 9 版本发布开始,Oracle 就一直在计划 Java 的改进和升级,包括将于 2018 年 3 月到期的 Java 18.3 版本,这个版本将作为 Java 标准版的发布计划一部分。
Java 的长期路线图
以下是 Oracle 公司正在考虑的下一代产品、以及更高版本的 Java SE:
-
Amber 项目(https://www.infoworld.com/article/3187868/application-development/oracles-java-on-java-experiment-picks-up-steam.html)是面向生产力的语言特征孵化器,包括局部变量类型推断在内的各种较小的语言,目标是减少编写 Java 代码的相关程序、通过增强枚举使类型变量的常量执行更为清晰、提高 Lambda 方法的可用性。
-
Panama 项目(https://www.infoworld.com/article/2607953/java/article.html),将 JVM 和本地代码互连,具有来自 JVM 的本地函数调用和来自 JVM 的本地数据访问等功能。
-
Valhalla 项目(https://www.infoworld.com/article/2608087/java/java-incubator-to-explore-technologies-for-java-10-and-beyond.html)是高级 Java 虚拟机和语言特性孵化器。
-
Loom 项目(http://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html),以降低编写并发应用程序的复杂性为目标,项目要求添加可选的用户模式线程实现、定界延续以及涉及调用堆栈操作的其他构造。通过提供一个由 Java 编写的调度器,替代实现线程的管理,这样子普通 Java 线程的 Java 编程模型就可以被保留下来,提高了性能,减少了占用空间。
新的六月发行计划推出后,也就意味着不同版本的功能更新会间隔六个月。但是目前除了已经宣布的 JDK 10 之外,Oracle 还没有承诺在 Java 中提供其他新的功能。
对于明年即将推出的 Java 10,在 JDK 10 早期试用版发布后(https://www.oschina.net/news/90271/jdk-10),网络上观点不一:
@一刀:厉害了,悄无声息的就发布了 JDK10。
@WO不吹牛:9 还没开始用,10 又悄悄的来了,这速度太 6 了。
@半个克林姆:不觉明历, 对于我这种菜鸡来说, 好像并没有什么影响!
@cky_Me:公司基本上用的还是1.6,1.7。
@东东-:快加上真泛型,删掉那堆没用的祖传模块。