1 JDK发展历史及各版本特性总结

文章目录

  • JDK发展历史及各版本特性总结
    • Java技术体系、JDK、JRE
    • JDK发展历史和各版本特性
        • Oak
        • Java1.0
        • JDK1.0
        • JDK1.1
        • JDK1.2
        • JDK1.3
        • JDK1.4
        • JDK5
        • JDK6
        • JDK7
        • JDK8
    • 参考

JDK发展历史及各版本特性总结

Java技术体系、JDK、JRE

Java技术体系
广义上,Clojure、JRuby、Groovy等运行在Java虚拟机上的语言及相关程序都属于Java技术体系的一员。
狭义上,Sun官方定义的Java技术体系包括:

  • Java程序设计语言
  • 各中硬件平台上的Java虚拟机
  • Class文件格式
  • Java API类库
  • 来自开源社区和开源社区的第三方Java类库

JDK
JDK(Java Development Kit,Java开发工具包):用于支持Java程序开发的最小环境,包括Java程序设计语言、Java虚拟机和Java API类库。

JRE
JRE(Java Runtime Environment,Java运行环境):用于支持Java程序运行的标准环境,包括Java虚拟机和Java API类库中的Java SE API子集。

JDK发展历史和各版本特性

JDK每次升级主要体现在:

  • 新增语法特性(通过编译器层面改进和在字节码中进行支持的改动来实现)
  • 新增技术特性(一般通过增加Java API来实现)
  • Java虚拟机内部的改进

说明:以下内容是笔者根据自己掌握的资料整理得到的,可能有遗漏或出错的地方,欢迎在评论区留言批评指正。

Oak

时间、版本及工程代号:1991.04 Oak
修正版本
新增语法特性
新增技术特性
JVM改进
其他说明:1991年04月,James Gosling博士领导的Green Project启动,目标开发一种在消费性电子产品(如机顶盒、冰箱等)上运行的程序架构,但在消费品市场上并不算成功。该计划的产品Oak就是Java语言的前身。

Java1.0

时间、版本及工程代号:1995.05.23 Java1.0
修正版本
新增语法特性
新增技术特性
JVM改进
其他说明:Oak在互联网市场中找到自己的定位,改名为Java,并第一次提出“Write Once, Run Anywhere”的口号。

JDK1.0

时间、版本及工程代号:1996.01.23 JDK1.0
修正版本
新增语法特性
新增技术特性:Applet、AWT
JVM改进:提供了一个纯解释执行的Java虚拟机实现(Sun Classic VM)
其他说明:1996年5月底,Sun于美国旧金山举行了首届JavaOne大会,从此JavaOne大会成为全世界数百万Java语言开发者每年一度的技术盛会

JDK1.1

时间、版本及工程代号:1997.02.19 JDK1.1
修正版本:共1.1.0-1.1.8九个版本,其中JDK1.1.4-Sparkler(宝石)、JDK1.1.5-Pumpkin(南瓜)、JDK1.1.6-Abigail(阿比盖尔,女子名)、JDK1.1.7-Brutus(布鲁图,古罗马政治家个将军)、JDK1.1.8-Chelsea(切尔西,城市名)。
新增语法特性内部类(Inner Class)、反射(Reflect)
新增技术特性JAR文件格式JDBC、JavaBeans、RMI(Remote Method Invocation,远程方法调用,开发纯Java的网络分布式应用系统的核心解决方案之一)
JVM改进
其他说明

JDK1.2

时间、版本及工程代号:1998.12.04 JDK1.2 Playground(竞技场)
修正版本
新增语法特性:添加了strictfp(strict float point,精确浮点)关键字
新增技术特性Collections集合类、EJB、Java Plug-in、Java IDL、Swing等
JVM改进:第一次内置JIT(Just In Time)编译器(JDK1.2中曾并存过Classic VM、HotSpot VM和Exact VM这3个虚拟机,后两个都是内置JIT编译器,而之前版本所带的Classic VM只能以外挂形式使用JIT编译器;另外,Exact VM仅在Solaris平台出现过)
其他说明

  • JDK1.2是具有里程碑意义的一个版本。
  • 1999年4月27日HotSpot虚拟机发布并作为JDK1.2的附加程序提供。
  • Sun在JDK1.2中把Java技术体系拆分为3个方向:
    • J2ME(Java 2 Platform, Micro Edition,面向手机等移动端开发版本)
    • J2SE(Java 2 Platform, Standard Edition,面向桌面应用开发版本)
    • J2EE(Java 2 Platform, Enterprise Edition,面向企业级开发版本)

JDK1.3

时间、版本及工程代号:2000.05.08 JDK1.3 Kestrel(美洲红隼)
修正版本:JDK1.3.1 Ladybird(瓢虫)
新增语法特性
新增技术特性JNDI(Java 命名与目录接口)、提供了大量新的Java 2D API、JavaSound类库
JVM改进:自JDK1.3开始,HotSpot虚拟机成为默认虚拟机
其他说明:自JDK1.3开始,Sun维持了一个习惯:大约每隔两年发布一个JDK主版本,以动物命名,期间发布的各个修正版本则以昆虫名称作为工程名称。

JDK1.4

时间、版本及工程代号:2002.02.13 JDK1.4 Merlin(灰背隼)
修正版本

  • 2002.09.16 JDK1.4.1 Grasshopper(蚱蜢)
  • 2003.06.26 JDK1.4.2 Mantis(螳螂)

新增语法特性
新增技术特性:正则表达式、异常链、NIO、日志类、XML解析器、XSLT转换器等
JVM改进
其他说明

  • JDK1.4是Java真正走向成熟的一个版本,许多著名公司参与实现,目前许多主流应用(如Spring、Hibernate、Struts等)都可以直接运行在JDK1.4上。
  • 2002年前后,微软用来与Java平台对标的.NET Framework发布。

JDK5

时间、版本及工程代号:2004.09.30 JDK1.5 Tiger(老虎)
修正版本
新增语法特性:自动装箱与拆箱、静态导入、泛型、动态注解、枚举、可变长参数、遍历(foreach)循环等
新增技术特性java.util.concurrent并发包
JVM改进:改进了Java的内存模型(Java Memory Model, JMM)
其他说明:从JDK1.5版本开始,只有程序员内部的开发版本号(Develper Version,如java -version的输出)中才继续沿用1.5、1.6、1.7的版本号,而公开版本号(Product Version)则改为JDK5、JDK6、JDK7的命名方式。

JDK6

时间、版本及工程代号:2006.12.11 JDK6 Mustang(野马)
修正版本
新增语法特性
新增技术特性:动态语言支持(通过内置Mozilla JavaScript Rhino引擎实现)、编译API、微型HTTP服务器等
JVM改进:锁与同步、垃圾收集、类加载等方面的算法都有很多改动
其他说明

  • 从JDK6开始结束J2EE、J2SE、J2ME的命名方式,启用了Java EE 6、Java SE 6、Java ME 6的命名方式。
  • 2006年11月13日的JavaOne大会上,Sun宣布最终会把Java开源,在随后的一年多陆续在GPL v2协议下公开了JDK各个部分的源码,并建立了OpenJDK组织对这些源码进行独立管理。
  • JDK6后,由于代码复杂性的增加、JDK开源、开发JavaFX、经济危机及Sun收购案等原因,Sun在JDK发展以外耗费了很多资源,JDK的更新没有维持两年发布一个主版本的发展速度。
  • 2009年4月20日,Oracle宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有(但Java语言本身不归属哪家公司所有,它由JCP组织进行管理,尽管JCP主要是由Sun或者是Oracle所领导的)。

JDK7

时间、版本及工程代号:2011.07.28 JDK7
修正版本
新增语法特性:二进制字面量、在数字字面量下使用下划线、swatch可以使用String类型、创建实例的类型推断、在try之后自动关闭资源(try-with-resources)等(详见参考2)
新增技术特性:ClassLoader新增API、URLClassLoader新增API、Concurrent包的改进、更多新NIO2的API等(详见参考3)
JVM改进G1垃圾收集器
其他说明

JDK8

时间、版本及工程代号:2014.03 JDK8
修正版本
新增语法特性:Lambda表达式、多重注解、接口默认方法
新增技术特性:扩展了集合类
JVM改进
其他说明

参考

[1] 《深入理解Java虚拟机》
[2] jdk1.7新特性详解
[3] JDK 7 新特性 - 总览
[4] JDK各个版本的新特性jdk1.5-jdk8

你可能感兴趣的:(JVM,java,jdk)