JDK(Java Development Kit)是用于支持Java程序开发的最小环境。由Java语言、Java虚拟机、Java API类库三个部分组成。
JRE(Java Runtime Environment)是支持Java程序运行的标准环境。由Java SE API和Java虚拟机两部分组成。
JDK中包含JRE。
Java发展简史
1991年4月,Java之父James Gosling领导开发了Oak(橡树)语言(Java语言前身)。
1995年5月23日,Oak语言改名Java,并发布Java 1.0版本,并提出“Write Once, Run Anywhere”的口号。(Java语言诞生)
1996年1月23日,JDK 1.0发布,Java语言有了第一个正式版本的运行环境。 第一个Java虚拟机(Sun Classic VM)登上历史舞台。(JDK发布,JVM登上历史舞台)
1998年12月4日,JDK 1.2发布,Java技术体系拆分成三个方向:J2SE、J2EE、J2ME。JIT(Just In Time)编译器第一次内置于Java虚拟机中。
1999年4月27日,HotSpot虚拟机发布,该虚拟机后来成为JDK 1.3及之后所有版本的默认虚拟机。
2002年2月13日,JDK 1.4发布,Java 1.4是真正走向成熟的一个版本。该版本不仅有很多著名公司参与,也发布许多新特性。如正则表达式、异常链、NIO、日志类等。
2004年9月30日,JDK 1.5在Java语法易用性上作出很大改进。自动装箱、泛型、注解、枚举、可变长参数等语法特性加入。在虚拟机层面,改进了Java 内存模型,提供java.util.concurrent并发包。
2006年12月11日,JDK 1.6发布,启用Java SE、Java EE、Java ME的命名方式。Java虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等算法进行优化。
2006年11月13日,Sun公司宣布Java开源。在JDk 1.7中,Sun JDK和Open JDK除了代码文件头等版权注释之外,代码基本完全一样。(Java开源)
2011年7月28日,JDK 1.7发布,因Sun公司破产,导致很多里程碑未实现。Oracle接手后,在Update 4提供对Mac OS X操作系统的支持,并在Update 6达到完全支持。同时,对ARM指令集架构也提供支持。
2014年3月18日,Oracle 公司发布JDK 1.8。该版本支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的 Stream API 等。
2017年9月22日,JDK 1.9 发布。其最主要的变化是已经实现的模块化系统(Jigsaw 项目)。
2018年3月21日,JDK 1.10发布。为了更快地迭代、更好地跟进社区反馈,Java 语言版本发布周期调整为每隔 6 个月发布一次。Java 10 最备受广大开发者关注的莫过于局部变量类型推断。其他还包括垃圾收集器改善、性能提升、线程管控等新特性。
2018年9月25日,JDK 1.11发布。按照官方介绍,新的版本发布周期将会严格按照时间节点,于每年的 3 月和 9 月发布,Java 11 发布的时间节点也正好处于 Java 8 免费更新到期的前夕。与 Java 9 和 Java 10 这两个被称为"功能性的版本"不同,Java 11 仅将提供长期支持服务(LTS, Long-Term-Support),还将作为 Java 平台的默认支持版本,并且会提供技术支持直至 2023 年 9 月,对应的补丁和安全警告等支持将持续至 2026 年。(不再免费)
2019年3月19日,JDK 1.12发布。该版本新特性有:实验性的低延迟垃圾收集器; Switch 表达式; 针对G1,提供可中止的混合垃圾收集和及时释放已申请但未使用的内存。
更多参考
JVM虚拟机发展史
Sun Classic/Exact VM
Classic VM是Java语言首次使用的商用正式运行环境。纯解释执行。在JDK 1.3前,是默认的虚拟机。
为解决Classic VM面临的各种问题,提高运行效率,发布Exact VM。因和HotSpot VM发布时间接近,很快被取代。
Sun HotSpot VM
JDK 1.3后默认的虚拟机,目前使用最广泛的Java虚拟机。
Sun MObile-Embedded VM/ Meta-Circular VM
BEA JRockit / IBM J9 VM
Apache Harmony/ Google Android Dalvik VM
Microsoft JVM
















