即将发布的 JDK 10 有 109 项新特性,你喜欢哪些? - 开源中国社区
Float_left Icon_close
即将发布的 JDK 10 有 109 项新特性,你喜欢哪些?
王练 2018年03月08日

即将发布的 JDK 10 有 109 项新特性,你喜欢哪些?

王练 王练 发布于2018年03月08日 收藏 12

做APP,小程序就上开源众包。世界杯期间免费领2600元启动金。>>>  

按计划,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 ,你喜欢哪些新特性?是否会更新使用?欢迎评论探讨。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:即将发布的 JDK 10 有 109 项新特性,你喜欢哪些?
分享
评论(49)
精彩评论
7
我大C#:这些都是我玩剩下的.
7
这样下去,计算机专科学院的体制得从两年改成三年才行
java 在不久之后就会变成 python 和javascript的 杂交体!!
2

引用来自“职通网”的评论

如果用rust来重写jvm去掉gc,就完美了。
gc 和用啥语言实现没直接关系吧!
java 现在应该使用 c/c++ 实现的吧?c/c++ 是没有 gc 的。
2

引用来自“xiaolei123”的评论

var name = new String(); …… 行吧,可以接受

引用来自“优秀良民”的评论

表示接受不了,写的人爽死,读的人苦死!
现在Intellij对java支持这么好. 敲String只要敲S一个字母,
如果换成var, 不知道是写的更爽了, 还是写得更多了

我觉得可读性更重要

Eclipse这货闪开, 敲S第一个提示的竟然是SecurityException. 太垃圾了

最新评论
0

引用来自“sharper”的评论

var,val 都得支持才好
所以直接用kotlin就好了
0

引用来自“xiaolei123”的评论

var name = new String(); …… 行吧,可以接受

引用来自“优秀良民”的评论

表示接受不了,写的人爽死,读的人苦死!

引用来自“cyper”的评论

现在Intellij对java支持这么好. 敲String只要敲S一个字母,
如果换成var, 不知道是写的更爽了, 还是写得更多了

我觉得可读性更重要

Eclipse这货闪开, 敲S第一个提示的竟然是SecurityException. 太垃圾了

用过kotlin吗?不要太爽
0

引用来自“keep_wan”的评论

我大C#:这些都是我玩剩下的.
虽然我是用java的,但我觉得你说的有道理
0
万年 j 8 其他都是浮云啊
0

引用来自“职通网”的评论

如果用rust来重写jvm去掉gc,就完美了。

引用来自“tulayang”的评论

去掉 gc ? 这想法真幼稚,如果 java 没有 gc,20 年前就被扔到垃圾桶了呀

引用来自“职通网”的评论

20年前还没有rust好不好。ok。建议你了解一下rust再来回复。
rust 我都了解了有 3 年了。rust 跟 java 有个屁关系。语言有没有 gc 跟用什么语言编写没有任何关系。
0

引用来自“xiaolei123”的评论

var name = new String(); …… 行吧,可以接受

引用来自“优秀良民”的评论

表示接受不了,写的人爽死,读的人苦死!

引用来自“cyper”的评论

现在Intellij对java支持这么好. 敲String只要敲S一个字母,
如果换成var, 不知道是写的更爽了, 还是写得更多了

我觉得可读性更重要

Eclipse这货闪开, 敲S第一个提示的竟然是SecurityException. 太垃圾了

反正我都是这么写的
new String().var 回车。不影响
1
var,val 都得支持才好
0
您好,可以转载您的这篇文章吗?会注明原文作者,原文链接。谢谢~
0

引用来自“职通网”的评论

如果用rust来重写jvm去掉gc,就完美了。

引用来自“鳄鱼的眼泪”的评论

难道rust不用gc吗
rust不用gc的吧
0

引用来自“开源中国首席一失足成千古风流人物以稀为贵”的评论

java 在不久之后就会变成 python 和javascript的 杂交体!!
考虑转python为主开发语言了
0

引用来自“xiaolei123”的评论

var name = new String(); …… 行吧,可以接受

引用来自“优秀良民”的评论

表示接受不了,写的人爽死,读的人苦死!

引用来自“cyper”的评论

现在Intellij对java支持这么好. 敲String只要敲S一个字母,
如果换成var, 不知道是写的更爽了, 还是写得更多了

我觉得可读性更重要

Eclipse这货闪开, 敲S第一个提示的竟然是SecurityException. 太垃圾了

写得不多不少,直接 new String().var 回车
但是真的不喜欢var或者可以省略那种,有时候就是想看一眼什么类型还要跳一下
每次看到java的新闻下面,都是被各种语言吊打,踩在脚下!:grin::grin::grin::grin:
0
这么多特性,记起来也是个麻烦事;用就更难用到新特性了。
0

引用来自“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
```

诸如此类

:heart_eyes:

引用来自“ixiaohei”的评论

你这个是文法,后面估计会有,现在java迭代很快的。
你说的这种写法 是scala的思想
0

引用来自“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
```

诸如此类

:heart_eyes:

引用来自“ixiaohei”的评论

你这个是文法,后面估计会有,现在java迭代很快的。
你说的这个,不就是python吗?:joy:
0
撒花
0

引用来自“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
```

诸如此类

:heart_eyes:
你这个是文法,后面估计会有,现在java迭代很快的。
0

引用来自“职通网”的评论

如果用rust来重写jvm去掉gc,就完美了。

引用来自“tulayang”的评论

去掉 gc ? 这想法真幼稚,如果 java 没有 gc,20 年前就被扔到垃圾桶了呀
20年前还没有rust好不好。ok。建议你了解一下rust再来回复。
2

引用来自“职通网”的评论

如果用rust来重写jvm去掉gc,就完美了。
gc 和用啥语言实现没直接关系吧!
java 现在应该使用 c/c++ 实现的吧?c/c++ 是没有 gc 的。
0
希望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
```

诸如此类

:heart_eyes:
顶部