3 月 20 日,oracle 宣布 java 10 正式发布。官方已提供下载: 。
在 java 9 之后,java 采用了基于时间发布的策略,每 6 个月一个版本。这是采用新的发布策略之后的第一个版本。
java 10 主要有 12 个新特性。
具体来看看。
jep 286: local-variable type inference
局部变量的类型推导。
很多人都会吐槽 java 代码写起来太过繁琐,特别是涉及泛型的时候。就像 c ,也基于 auto
关键字引入了类型推导功能。
java 也计划引入类似特性,语法是这样的:
var list = new arraylist
该特性只能用于三种场景:
-
带有初始化信息的局部变量
-
增强 for 循环中的索引
-
传统 for 循环中的局部变量
看个复杂点的例子:
对该特性感兴趣的读者可以参考: 。
jep 296: consolidate the jdk forest into a single repository
将 jdk 的多个代码仓库合并到一个代码仓库中。
看过 jdk 代码的应该知道,jdk 的不同功能分布在不同代码仓库中。以 jdk 9 为例,代码仓库有 8 个: root, corba, hotspot,jaxp, jaxws, jdk, langtools 和 nashorn。其中 hotspot 是虚拟机实现代码,jdk 是 java 类库和相关工具,langtools 是 javac 等工具,nashorn 是 javascript 引擎。
jep 304: garbage collector interface
垃圾收集器接口。
在 hotspot/gc 代码实现方面,引入一个干净的垃圾收集器接口,改进不同垃圾收集器源代码的隔离性。这样添加新的或者删除旧的 gc,都会更容易。
jep 307: parallel full gc for g1
为 g1 垃圾收集器引入并行 full gc。
jep 310: application class-data sharing
java 之前就引入了类数据共享机制,class data sharing (cds) ,以减少 java 程序的启动时间,降低内存占用。简单来说,java 安装程序会把 rt.jar 中的核心类提前转化成内部表示,转储到一个共享的文件中(shared archive)。多个 java 进程(或者说 jvm 实例)可以共享这部分数据。
现在,希望更近一步,支持应用类的数据共享。
jep 312: thread-local handshakes
修改安全点机制,使得部分回调操作只需要停掉单个线程,而不像以前那样,只能选择或者停掉所有线程,或者都不停止。
jep 313: remove the native-header generation tool (javah)
去掉 javah 工具。
从 jdk 8 开始,javah 的功能已经集成到了 javac 中。所以,javah 可以删掉了。
jep 314: additional unicode language-tag extensions
额外的 unicode 语言标签扩展。
增强 java.util.locale
和相关 api,实现 bcp 47 语言标签中额外的 unicode 扩展。
jep 316: heap allocation on alternative memory devices
在可选内存设备上分配堆内存。
支持将 java 对象堆分配到 nv-dimm 等内存设备上。随着 nv-dimm 越来越便宜,未来的系统可能会搭载异构内存架构。
jep 317: experimental java-based jit compiler
实验性的基于 java 的 jit 编译器。
支持基于 java 的 jit 编译器。相关工作主要基于 graal。graal 也是 java 9 中引入的 aot 编译器的基础。
jep 319: root certificates
根证书。
在 jdk 中提供一组默认的根证书。
jep 322: time-based release versioning
基于时间的版本字符串。修改 java se 平台和 jdk 版本字符串机制。考虑和之前版本号的兼容等问题,新的版本命名机制是:
$feature.$interim.$update.$patch
$feature,每次版本发布加 1,不考虑具体的版本内容。(之前的主版本号部分)2018 年 3 月的版本是 jdk 10,9 月的版本是 jdk 11,依此类推。
$interim,中间版本号,在大版本中间发布的,包含问题修复和增强的版本,不会引入非兼容性修改。
马上下载尝试吧!
4 楼 2018-03-23 19:44
3 楼 2018-03-23 15:26
2 楼 masuweng 2018-03-22 13:25
1 楼 cremains 2018-03-21 10:59