JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。jdk10.0.1这个版本的jdk已经适用于大部分的编程环境,作为编程人员必须的环境,支持多个ide,最为标准的开发模式,让你可以更加方便的体验到开发软件的便捷之处!
JDK 10 新特色
1.局部变量类型推断
局部变量类型推断可以说是Java 10中最值得注意的特性,这是Java语言开发人员为了简化Java应用程序的编写而采取的又一步,如下图所示。
这个新功能将为Java增加一些语法糖 – 简化它并改善开发者体验。新的语法将减少与编写Java相关的冗长度,同时保持对静态类型安全性的承诺。局部变量类型推断将引入”var”关键字,也就是你可以随意定义变量而不必指定变量的类型,如下图:将被下面这个新语法所取代:
看完是不是有点JS的即视感???越来越像JS了吗?!虽然类型推断在Java中不是一个新概念,但在局部变量中确是很大的一个改进。
说到类型推断,从JDK 5引进泛型,到JDK 7的”<>”操作符允许不绑定类型而初始化List,再到JDK 8的Lambda表达式,再到现在JDK 10的局部变量类型推断,Java类型推断正大刀阔斧的向前发展。
2. GC改进和内存管理
JDK 10中有2个JEP专门用于改进当前的垃圾收集元素。
第一个垃圾收集器接口是(JEP 304),它将引入一个纯净的垃圾收集器接口,以帮助改进不同垃圾收集器的源代码隔离。
预定用于Java 10的第二个JEP是针对G1的并行完全GC(JEP 307),其重点在于通过完全GC并行来改善G1最坏情况的等待时间。G1是Java 9中的默认GC,并且此JEP的目标是使G1平行。
3. 线程本地握手(JEP 312)
JDK 10将引入一种在线程上执行回调的新方法,因此这将会很方便能停止单个线程而不是停止全部线程或者一个都不停。
4. 备用内存设备上的堆分配(JEP 316)
允许HotSpot VM在备用内存设备上分配Java对象堆内存,该内存设备将由用户指定。
5. 其他Unicode语言 – 标记扩展(JEP 314)
目标是增强java.util.Locale及其相关的API,以便实现语言标记语法的其他Unicode扩展(BCP 47)。
6. 基于Java的实验性JIT编译器
Oracle希望将其Java JIT编译器Graal用作Linux / x64平台上的实验性JIT编译器。
7. 根证书(JEP 319)
这个的目标是在Oracle的Java SE中开源根证书。
8. 根证书颁发认证(CA)
这将使OpenJDK对开发人员更具吸引力,它还旨在减少OpenJDK和Oracle JDK构建之间的差异。
9. 将JDK生态整合单个存储库(JEP 296)
此JEP的主要目标是执行一些内存管理,并将JDK生态的众多存储库组合到一个存储库中。
10. 删除工具javah(JEP 313)
从JDK中移除了javah工具,这个很简单并且很重要。
jdk10 安装教程
点击安装包安装,需要注意的是,选择安装目录,不要选到C盘。推荐使用像我这种目录风格,比如D:\JDK\10,以便多JDK共存。
同时取消勾选JRE安装,因为JDK从来都是包含JRE的,一般没有必要再独立安装一个JRE浪费硬盘。
配置环境变量
进入电脑的系统环境变量设置页面,win10系统直接在左下角搜索"环境变量"即可
在系统环境变量中新建一个JAVA_HOME环境变量,目录选择JDK10的安装目录如
D:\JDK\10
保存
在Path变量中,增加一个
%JAVA_HOME%\bin
变量,记得让这个变量处于第一个位置,这样可以让它优先级最高,防止安装在C盘的其它JRE和它冲突。
进入cmd命令提示符,win10系统可以在左下角搜索cmd,回车进入。
输入
java -version
可以查看当前JAVA版本
输入
where java
可以查看java命令来源的目录,如果配置正确的话,JDK10的安装目录,应该是第一行输出。我这里第二个是C盘安装了一个JRE。如果在PATH变量中,
%JAVA_HOME%\bin
的位置在最后了,可能就会被这个JRE覆盖,导致输出版本不是自己预期的。