Java历史版本与发布时间
1996年1月,JDK 1.0发布,这是Java语言的第一个版本,提供了基本的Java语言库。
1997年2月,JDK 1.1发布,这个版本主要增加了对内部类的支持和一些新的API。
1998年12月,JDK 1.2发布,这个版本被更名为Java 2平台(Java 2 Platform),并且引入了Java命名空间、Swing GUI组件等新特性。这个版本后来也被称为J2SE 1.2。
2000年5月,JDK 1.3发布,增加了对Java HotSpot虚拟机的支持,提高了程序的性能。
2002年2月,JDK 1.4发布,也被称为J2SE 1.4。这个版本增加了正则表达式、NIO(新输入输出库)、XML处理等新功能。
2004年9月,J2SE 5.0发布,为了表示该版本的重要性,SUN公司将这个版本更名为Java SE 5.0。这个版本引入了泛型、枚举、自动装箱拆箱等重要的语言特性。
2006年12月,JDK 6.0发布,也被称为Java SE 6。这个版本提供了更多的API和工具,增强了Web服务和XML处理能力。
2011年7月,JDK 7发布,也被称为Java SE 7。这个版本引入了新的I/O库(NIO 2.0),以及对动态语言的支持等新特性。
2014年3月,JDK 8发布,也被称为Java SE 8。这个版本引入了Lambda表达式、Stream API、新的日期时间API等重要的新特性,是Java历史上一个重大的里程碑版本。
2017年9月,JDK 9发布。从JDK 9开始,Oracle公司改变了Java版本的发布策略,采取每半年发布一个新版本的方式,并且为每个版本赋予一个唯一的版本号,而不再是以前那种在主要版本号后面加小数点的方式。JDK 9引入了模块化系统(JPMS),使得Java应用可以更加灵活地构建和部署。
JDK 10 (2018年3月发布)
引入了应用程序类数据共享(CDS),允许在不同的Java进程之间共享预先计算和存储的类元数据。
更新了JRE的根证书集,以更好地支持最新的SSL/TLS证书。
新增了Map.ofEntries()方法,用于创建不可变的映射。
对Optional类进行了增强,包括新增了orElseThrow()方法。
JDK 11 (2018年9月发布)
引入了新的Epsilon垃圾收集器,这是一个低延迟、高吞吐量的垃圾收集器。
增强了String类的功能,包括新增了isBlank()、lines()、strip()等方法。
提供了对HTTP/2客户端的支持。
引入了新的var关键字用于局部变量类型推断。
JDK 12 (2019年3月发布)
引入了新的Switch表达式(预览功能)。
提供了对新的instanceof模式匹配的支持(预览功能)。
引入了Shenandoah垃圾收集器(实验性)。
JDK 13 (2019年9月发布)
增强了Switch表达式(第二次预览)。
引入了文本块(预览功能),用于多行字符串字面量。
提供了对ZGC(Z垃圾收集器)的增强,包括取消使用未使用的内存。
JDK 14 (2020年3月发布)
引入了新的JFR(Java Flight Recorder)事件流API。
提供了对instanceof模式匹配的最终支持。
增强了Switch表达式,使其成为正式功能。
JDK 15 (2020年9月发布)
引入了密封类(预览功能),用于限制类的继承。
提供了对EdDSA(Edwards-curve Digital Signature Algorithm)的支持。
废弃了Nashorn JavaScript引擎。
JDK 16 (2021年3月发布)
引入了新的JPackage工具,用于将Java应用程序打包为原生应用程序。
提供了对Vector API(孵化器模块)的初步支持,用于高性能数据处理。
增强了instanceof模式匹配,允许在switch表达式中使用。
JDK 17 (2021年9月发布)
引入了新的Context类,用于管理并发和异步操作的上下文。
提供了对Sealed类的正式支持。
增强了JFR,包括新的数据收集和分析功能。
JDK 18 (2022年3月发布)
引入了新的jweb工具,用于管理Web应用程序。
提供了对Foreign-Memory Access API(孵化器模块)的增强,用于安全、高效地访问Java堆外部的内存。
增强了Stream API,包括新的toList()方法。
JDK 19 (2022年9月发布)
引入了新的Virtual Threads(轻量级线程),用于提高并发性能。
提供了对Record类的增强,包括新的构造函数和访问器方法。
增强了JFR和jcmd工具的功能和性能。
官网版本发行说明
https://www.oracle.com/java/technologies/javase/17all-relnotes.html
https://www.oracle.com/java/technologies/downloads/#java17
