JDK下载介绍及其选择
1.JDK简介
基本情况
JDK 是 Java 语言的软件开发工具包。JDK 是整个 Java 开发的核心,它包括 Java 运行环境、Java 基础类库和 Java 工具。
版本情况
按照维护情况分为 non-LTS(短期) 和 LTS(长期)两种 ;对于短期支持版本(non-LTS)而言,Oracle只会提供6个月的支持维护;而对于长期支持版本(LTS),则提供8年的支持维护。
版本更新情况
正常情况下,每隔6个月就会有一个短期维护版本(non-LTS)发布出来,比如JDK 9、10、12、13、14、15、16;然后每隔3年,就会发布一款得到8年长期支持维护的JDK版本,比如JDK 8、11、17
目前,JDK有三个长期支持版本(LTS),分别是:JDK8、JDK11 和 JDK17。
2.版本特点(长期支持版本)
JDK 8
JDK8 相比之前版本,主要有以下几方面的变化:
1. 支持 Lambda 表达式,通过函数式编程,使得代码更少;
2. 引入新的 Date Time API,加强对日期与时间的处理;
3. 新增 Stream API,即 java.util.stream;
4. 引入 Optional 类,最大化减少空指针异常;
5. 提供新的 Nashorn JavaScript 引擎,允许在 JVM 上运行特定的JS应用。
JDK 11
JDK11 相比之前版本,主要有以下几方面的变化:
1. JDK11 版本包括了对 Unicode 10.0.0 的支持。
2. JDK9 中引入的 HTTP Client API,并在 JDK 10 中进行更新。目前 Http Client 已在 Java 11 中标准化。新的 HTTP API 提供了对 HTTP/2 等业界前沿标准的支持,精简而又友好的 API 接口,与主流开源 API 对等甚至更高的性能。
3. 引入 Z 垃圾收集器,也称为 ZGC,是一个可扩展的低延迟垃圾收集器,它实现以下目标:暂停时间不超过 10s;暂停时间不会随堆或实时设置大小而增加;处理大小从几百兆到几千兆字节不等的堆等。
4. 引入了 Epsilon GC,它是新的实验性无操作垃圾收集器。Epsilon GC 仅处理内存分配,并且不实现任何内存回收机制。它对性能测试非常有用。
JDK 17
JDK17 相比之前版本,主要有以下几方面的变化:
1. switch 新增模式;
2. Realed class 密封类;
3. 随机数增强;
4. 浮点运算更加严格;
5. Parallel GC 默认启用;
6. 增强 TreeMap;
7. 弃用 Socket 实现工厂机制;
8. 统一日志支持异步日志刷新;
9. 新增 java.time.InstantSource。