Java 10 正式版发布附JAVA环境配置小工具

甲骨文Oracle公司JavaSE,JDK10于已2018年3月20号正式发布!尽管JDK9对于许多Java开发人员非常新鲜,但它的发展并没有停止。特别是JDK10为局部变量实例化引入类型推断机制,并将现有的JDK存储库合并到一个Mercurial存储库中。此外,为了更快地迭代,以及跟进社区反馈,Java的版本发布周期变更为每六个月一次,并且承诺不会跳票。新的发布周期也会严格遵循时间点,将在每年的3月份和9月份发布。

JDK(JavaDevelopmentKit)是整个Java的核心,包括了Java运行环境、Java开发工具和Java基础类库源代码。JDK作为JAVA开发的环境,是运行JAVA程序不可缺少的环境,不管是做JAVA开发还是做安卓开发,都必须在电脑上安装JDK。小到小型设备,大到智慧城市,Java的贡献力量是其他任何技术无可比拟的。

Java 10 正式版发布附JAVA环境配置小工具

Java10新特性介绍

Java10发布说明

http://www.oracle.com/technetwork/java/javase/10-relnotes-4108314.html

1.局部变量类型推断

局部变量类型推断可以说是Java10中最值得注意的特性,这是Java语言开发人员为了简化Java应用程序的编写而采取的又一步,如下图所示。

Java 10 正式版发布附JAVA环境配置小工具

这个新功能将为Java增加一些语法糖–简化它并改善开发者体验。新的语法将减少与编写Java相关的冗长度,同时保持对静态类型安全性的承诺。局部变量类型推断将引入”var”关键字,也就是你可以随意定义变量而不必指定变量的类型,如下图:将被下面这个新语法所取代:

Java 10 正式版发布附JAVA环境配置小工具

看完是不是有点JS的即视感???越来越像JS了吗?!虽然类型推断在Java中不是一个新概念,但在局部变量中确是很大的一个改进。

说到类型推断,从JDK5引进泛型,到JDK7的”<>”操作符允许不绑定类型而初始化List,再到JDK8的Lambda表达式,再到现在JDK10的局部变量类型推断,Java类型推断正大刀阔斧的向前发展。

局部变量类型推荐仅限于如下使用场景:

•局部变量初始化

•for循环内部索引变量

•传统的for循环声明变量

Java官方表示,它不能用于以下几个地方:

•方法参数

•构造函数参数

•方法返回类型

•字段

•捕获表达式(或任何其他类型的变量声明)

2.GC改进和内存管理

JDK10中有2个JEP专门用于改进当前的垃圾收集元素。

第一个垃圾收集器接口是(JEP304),它将引入一个纯净的垃圾收集器接口,以帮助改进不同垃圾收集器的源代码隔离。

预定用于Java10的第二个JEP是针对G1的并行完全GC(JEP307),其重点在于通过完全GC并行来改善G1最坏情况的等待时间。G1是Java9中的默认GC,并且此JEP的目标是使G1平行。

3.线程本地握手(JEP312)

JDK10将引入一种在线程上执行回调的新方法,因此这将会很方便能停止单个线程而不是停止全部线程或者一个都不停。

4.备用内存设备上的堆分配(JEP316)

允许HotSpotVM在备用内存设备上分配Java对象堆内存,该内存设备将由用户指定。

5.其他Unicode语言–标记扩展(JEP314)

目标是增强java.util.Locale及其相关的API,以便实现语言标记语法的其他Unicode扩展(BCP47)。

6.基于Java的实验性JIT编译器

Oracle希望将其JavaJIT编译器Graal用作Linux/x64平台上的实验性JIT编译器。

7.根证书(JEP319)

这个的目标是在Oracle的JavaSE中开源根证书。

8.根证书颁发认证(CA)

这将使OpenJDK对开发人员更具吸引力,它还旨在减少OpenJDK和OracleJDK构建之间的差异。

9.将JDK生态整合单个存储库(JEP296)

此JEP的主要目标是执行一些内存管理,并将JDK生态的众多存储库组合到一个存储库中。

10.删除工具javah(JEP313)

从JDK中移除了javah工具,这个很简单并且很重要。

检查JDK环境是否配置成功命令:

CMD命令提示符输入java-version

© 版权声明
THE END
点赞7赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容