目录
Java产品线
Java SE
- 面向桌面级应用的Java平台,提供完整的Java核心API。
- JDK 6前被称为J2SE。
Java EE
- 面向企业应用的Java平台,出了SE api外,还做了大量扩充。
- JDK 6以前被称为J2EE。
- JDK 10后,Oracle捐给Eclipse基金会,改名Jakarta EE。
Java发展史
1995.5 JDK1.0:
Oak改名Java。
JDK:
核心API、集成API、用户界面API、发布技术、JVM
JRE:
Java程序的编译器
1997.2 JDK1.1:
内部类、反射等。
1998.12 JDK1.2:
产品线拆分为:
J2ME
J2SE
J2EE
2000.2 JDK1.3:
HotSpot虚拟机作为默认Java虚拟机,由Longview公司设计,后被Sum收购,之前使用Sum Classic虚拟机。
2002.2 JDK1.4:
正则表达式、异常链、NIO、日志类、XML解析器等。
2004.9 JDK 5:
官方文档不再只用JDK1.5命名,只有开发版本号继续沿用1.x,公开版使用JDK x。
自动装箱、泛型、动态注解、枚举、可变长参数、foreach循环、并发包等。
2006.12 JDK 6:
Sum宣布开源Java。
产品重命名:
Java ME 6
Java SE 6
Java EE 6
2009.4 :
Oracle收购Sum。
2011.7 JDK 7:
G1收集器。
正式开始为Mac OS X操作系统提供支持。
2014.9 JDK 8 LTS:
Lambda表达式、新的时间、日期API等
彻底移除HotSpot的永久代。
2017.9 JDK 9:
Jigsaw模块化。
增强工具JS Shell JLink等。
2018.3 JDK 10:
Oracle宣布Java EE成为历史名词。捐给Eclipse基金会,改名Jakarta EE
本地类型自动推断
统一仓库
统一垃圾收集器接口
统一即时编译器接口(引入新的Graal即时编译器)
2018.9 JDK 11 LTS:
"Java要开始收费啦!",纯属标题党。
Oracle把商业特性开源给OpenJDK,以后将同时发行两个JDK,Oracle OpenJDK,OracleJDK,区别是前者生产环境也是免费使用。
ZGC垃圾收集器
类型推断加入Lamdba语法
2019.2 JDK 12:
Switch表达式
JMH,Java微测试套件
RedHat领导开发的Shenandoah垃圾收集器在OracleJDK12被强行除掉。
参考:《深入理解Java虚拟机》 第3版 周志明