新时代已经开始! Java SE 10(JDK 10)是Oracle新的六个月周期中的第一个版本。
您可以在此处下载Java 10。
Java 10
尽管Java 9是六个月前才发布的( only! ),这意味着对Java 10的期望可能不是很高,但此发布可能会让您大吃一惊。 为什么? 正如Simon Ritter在最近的文章中所写的那样,其中包含a lot新功能。
新版本中包含的一些关键功能:
- 局部变量类型推断:增强了Java语言,以将类型推断扩展到具有初始化程序的局部变量的声明。
- 用于G1的并行完整GC:通过使完整GC并行,可以提高G1最坏情况的延迟。
- 应用程序类数据共享:通过扩展现有的类数据共享(“ CDS”)功能来优化启动时间和占用空间,以允许将应用程序类放置在共享档案中。
- 基于Java的实验性JIT编译器:使基于Java的JIT编译器Graal可用作Linux / x64平台上的实验性JIT编译器
JDK 10:常规可用性: https: //t.co/SyL3VuCjNt #jigsaw #jdk10#java10 #java #openjdk
-Mark Reinhold(@mreinhold) 2018年3月20日
根据宣布该新版本的博客文章 ,Java 10包含通过JDK增强建议(JEPS)定义的12个新增强功能。
- (JEP 286)局部变量类型推断:增强了Java语言,以将类型推断扩展到具有初始化程序的局部变量的声明。 它将var引入Java,这在其他语言中很常见。
- (JEP 296)将JDK目录林合并为一个存储库:将JDK目录林的多个存储库合并为一个存储库,以便简化和简化开发。
- (JEP 204)车库收集器接口:通过引入干净的垃圾收集器(GC)接口,改进了不同垃圾收集器的源代码隔离。
- (JEP 307)用于G1的并行完整GC:通过使完整GC并行来提高G1最坏情况的延迟。
- (JEP 301)应用程序数据类共享:为了改善启动和占用空间,此JEP扩展了现有的类数据共享(“ CDS”)功能,以允许将应用程序类放置在共享档案中。
- (JEP 312)线程本地握手:介绍一种在不执行全局VM安全点的情况下在线程上执行回调的方法。 使停止单个线程而不是仅停止所有线程或不停止一个线程既可行又便宜。
- (JEP 313)删除本机头生成器工具:从JDK中删除javah工具,因为它已被javac中的高级功能所取代。
- (JEP 314)其他Unicode语言标签扩展:增强了java.util.Locale和相关API,以实现BCP 47语言标签的其他Unicode扩展。
- (JEP 316)备用内存设备上的堆分配:使HotSpot VM可以在用户指定的备用内存设备(例如NV-DIMM)上分配Java对象堆。
- (JEP 317)基于实验Java的JIT编译器:使基于Java的JIT编译器Graal可用作Linux / x64平台上的实验JIT编译器。
- (JEP 319)根证书:在JDK中提供一组默认的根证书颁发机构(CA)证书。
- (JEP 322)基于时间的发行版本控制:针对当前和将来的基于时间的发行模型,修订了Java SE平台和JDK的版本字符串方案以及相关的版本控制信息。
还请参见: Java 10和新出现的发布疲劳问题
Java 10愿望清单:实现了什么,什么没有实现
去年 ,我们与11位Java影响者就他们对Java 10的愿望清单进行了交谈,因此现在是时候看看是否满足了他们的愿望。
我想查看局部变量类型推断。 很长一段时间,我都是那些长期的Java程序员之一,他们并不在乎所有的样板,因为随着时间的推移,这些样板对您来说是不可见的。 但是,我们获得的样板减少得越多(例如lambda表达式,方法引用和新的Collections工厂方法),我越能意识到一种语言可以简洁而不丢失所有含义。
从性能的角度来看,我真的很想看到类似“值类型”的东西。 我知道有人在讨论如何做,如何做以及它有什么作用,但是我认为这些讨论确实很重要,并且这样的事情可以使Java在性能方面进一步向前发展。
— Trisha Gee
我正在等待Valhalla项目。 它将真正改变我们编写Java的方式。
— Baruch Sadogursky
我对Valhalla项目中计划的一切感到非常兴奋。 值类型将确保最相关的改进,通用专业化将使用户避免大量不必要的装箱/拆箱操作,这些操作非常耗时。 标准化泛型的用途可能会受到更多限制,但是它们将帮助像我这样的许多程序员开发框架和库,这些框架和库通常需要大量使用反射。
— Mario Fusco
现在的问题仍然存在:谁将何时迁移到Java 10? 让我们希望历史不会重演,因为根据我们最近的民意调查的初步结果- 这项调查仍在进行中! -,大多数人仍在使用Java 8。
再一次,去年的调查结果表明,Java 9是我们读者的头等大事 -62%的人希望在2018年尝试Java 9 ,只有五分之一的受访者认为它没有兴趣。 更重要的是,约有三分之一的受访者对尝试使用Java 10和11感兴趣,因此Java 10是否更像Java 8还是继承了Java 9的吸引力还有待观察。