按计划,JDK 10 将于 3 月 20 日正式发布。据前 Oracle 员工 Simon Ritter 的统计,JDK 10 总共包含 109 项新特性。当然,在最终发布前,可能还会发生变化。

新特性中最重要的,是我们之前曾报道过的 12 个 JEP :
JEP 286: 局部变量的类型推断。该特性在社区讨论了很久并做了调查,可查看 JEP 286 调查结果。
JEP 296: 将 JDK 的多个代码仓库合并到一个储存库中。
JEP 304: 垃圾收集器接口。通过引入一个干净的垃圾收集器(GC)接口,改善不同垃圾收集器的源码隔离性。
JEP 307: 向 G1 引入并行 Full GC。
JEP 310: 应用类数据共享。为改善启动和占用空间,在现有的类数据共享(“CDS”)功能上再次拓展,以允许应用类放置在共享存档中。
JEP 312: 线程局部管控。允许停止单个线程,而不是只能启用或停止所有线程。
JEP 313: 移除 Native-Header Generation Tool (javah)
JEP 314: 额外的 Unicode 语言标签扩展。包括:cu (货币类型)、fw (每周第一天为星期几)、rg (区域覆盖)、tz (时区) 等。
JEP 316: 在备用内存设备上分配堆内存。允许 HotSpot 虚拟机在备用内存设备上分配 Java 对象堆。
JEP 317: 基于 Java 的 JIT 编译器(试验版本)。
JEP 319: 根证书。开源 Java SE Root CA 程序中的根证书。
JEP 322: 基于时间的版本发布模式。“Feature releases” 版本将包含新特性,“Update releases” 版本仅修复 Bug 。
“局部变量的类型推断”可以说是这 12 个 JEP 中最受关注的,为支持此特性,开发团队也对 Java 语言规范做了一些更改,包括改变具有相同名称的静态类型的导入规则、将 var 作为局部变量类型推断的特殊标识符等等。
此外还包括新增的 73 个标准类库,对 JVM 规范的更改,以及一些其他更改项。完整的 109 项新特性请查阅:https://www.azul.com/109-new-features-in-jdk-10/。
JDK 10 候选版体验地址:http://jdk.java.net/10/
对于 JDK 10 ,你喜欢哪些新特性?是否会更新使用?欢迎评论探讨。
引用来自“sharper”的评论
var,val 都得支持才好引用来自“xiaolei123”的评论
var name = new String(); …… 行吧,可以接受引用来自“优秀良民”的评论
表示接受不了,写的人爽死,读的人苦死!引用来自“cyper”的评论
现在Intellij对java支持这么好. 敲String只要敲S一个字母,如果换成var, 不知道是写的更爽了, 还是写得更多了
我觉得可读性更重要
Eclipse这货闪开, 敲S第一个提示的竟然是SecurityException. 太垃圾了
引用来自“keep_wan”的评论
我大C#:这些都是我玩剩下的.引用来自“职通网”的评论
如果用rust来重写jvm去掉gc,就完美了。引用来自“tulayang”的评论
去掉 gc ? 这想法真幼稚,如果 java 没有 gc,20 年前就被扔到垃圾桶了呀引用来自“职通网”的评论
20年前还没有rust好不好。ok。建议你了解一下rust再来回复。引用来自“xiaolei123”的评论
var name = new String(); …… 行吧,可以接受引用来自“优秀良民”的评论
表示接受不了,写的人爽死,读的人苦死!引用来自“cyper”的评论
现在Intellij对java支持这么好. 敲String只要敲S一个字母,如果换成var, 不知道是写的更爽了, 还是写得更多了
我觉得可读性更重要
Eclipse这货闪开, 敲S第一个提示的竟然是SecurityException. 太垃圾了
new String().var 回车。不影响
引用来自“职通网”的评论
如果用rust来重写jvm去掉gc,就完美了。引用来自“鳄鱼的眼泪”的评论
难道rust不用gc吗引用来自“开源中国首席一失足成千古风流人物以稀为贵”的评论
java 在不久之后就会变成 python 和javascript的 杂交体!!引用来自“xiaolei123”的评论
var name = new String(); …… 行吧,可以接受引用来自“优秀良民”的评论
表示接受不了,写的人爽死,读的人苦死!引用来自“cyper”的评论
现在Intellij对java支持这么好. 敲String只要敲S一个字母,如果换成var, 不知道是写的更爽了, 还是写得更多了
我觉得可读性更重要
Eclipse这货闪开, 敲S第一个提示的竟然是SecurityException. 太垃圾了
但是真的不喜欢var或者可以省略那种,有时候就是想看一眼什么类型还要跳一下
引用来自“cyper”的评论
希望java多支持一些字面量的表达方式,1) 直接支持json字面量,
比如 out.println({name: 'aaa', age: 22 });
2) 支持数组字面量
String[] names = ["aaa","bbb","ccc"],
3) 支持map字面量
Map<String, Object> map = {name: 'cyper', age: 12}
4) 支持跨行字符串
String sql = ```
select * from xxx
where xx = 1
order by x
```
诸如此类
😍
引用来自“ixiaohei”的评论
你这个是文法,后面估计会有,现在java迭代很快的。引用来自“cyper”的评论
希望java多支持一些字面量的表达方式,1) 直接支持json字面量,
比如 out.println({name: 'aaa', age: 22 });
2) 支持数组字面量
String[] names = ["aaa","bbb","ccc"],
3) 支持map字面量
Map<String, Object> map = {name: 'cyper', age: 12}
4) 支持跨行字符串
String sql = ```
select * from xxx
where xx = 1
order by x
```
诸如此类
😍
引用来自“ixiaohei”的评论
你这个是文法,后面估计会有,现在java迭代很快的。引用来自“职通网”的评论
如果用rust来重写jvm去掉gc,就完美了。引用来自“tulayang”的评论
去掉 gc ? 这想法真幼稚,如果 java 没有 gc,20 年前就被扔到垃圾桶了呀引用来自“职通网”的评论
如果用rust来重写jvm去掉gc,就完美了。java 现在应该使用 c/c++ 实现的吧?c/c++ 是没有 gc 的。
1) 直接支持json字面量,
比如 out.println({name: 'aaa', age: 22 });
2) 支持数组字面量
String[] names = ["aaa","bbb","ccc"],
3) 支持map字面量
Map<String, Object> map = {name: 'cyper', age: 12}
4) 支持跨行字符串
String sql = ```
select * from xxx
where xx = 1
order by x
```
诸如此类
😍
引用来自“职通网”的评论
如果用rust来重写jvm去掉gc,就完美了。引用来自“xiaolei123”的评论
var name = new String(); …… 行吧,可以接受引用来自“优秀良民”的评论
表示接受不了,写的人爽死,读的人苦死!如果换成var, 不知道是写的更爽了, 还是写得更多了
我觉得可读性更重要
Eclipse这货闪开, 敲S第一个提示的竟然是SecurityException. 太垃圾了
引用来自“zzzwj”的评论
为什么我对类型推断这么反感😠引用来自“职通网”的评论
如果用rust来重写jvm去掉gc,就完美了。引用来自“鳄鱼的眼泪”的评论
难道rust不用gc吗引用来自“cns”的评论
这样下去,计算机专科学院的体制得从两年改成三年才行引用来自“xiaolei123”的评论
var name = new String(); …… 行吧,可以接受引用来自“keep_wan”的评论
我大C#:这些都是我玩剩下的.引用来自“职通网”的评论
如果用rust来重写jvm去掉gc,就完美了。