Java History

Java 发展史

作为一个Java开发人员必知的JDK发展史。

Oak

1991年4月,由James Gosling领导的绿色计划(Green Project),目的是开发一种能够在各种消费性电子产品上运行的程序架构。

Java 1.0

​ 1995年5月23日,Oak改名为Java,并且在SunWorld大会上正式发布Java1.0版本。第一次提出”Write Once, Run Anywhere”。

JDK 1.0

​ 1996年1月23日,JDK1.0发布,Java语言有了第一个正式版本的运行环境。JDK1.0提供了一个纯解释执行的Java虚拟机实现(Sun Classic VM)。JDK1.0的代表技术包括:Java虚拟机、Applet、AWT等。

​ 1996年5月底,Sun公司于美国旧金山举行了首届JavaOne大会,从此JavaOne成为每年一度的Java语言开发者的技术盛会。

JDK1.1

​ 1997年2月19日,Sun发布了JDK1.1。Java技术的一些最基础的支撑点(如JDBC)都是在JDK1.1版本中发布的,代表技术有:JAR文件格式、JDBC、JavaBeans、RMI。Java语法也有一定发展,如:内部了(Inner Class)和反射(Reflection)。

​ 直到1999年4月8日,JDK1.1一共发布了1.1.0 ~ 1.1.8九个版本。从1.1.4之后,每个JDK版本都有一个工程代号。分别为:JDK1.1.4 – Sparkler,JDK1.1.5 – Pumpkin,JDK1.1.6 – Abigail,JDK1.1.7 – Brutus,JDK1.1.8 – Chelsea。

JDK1.2 – Playground

​ 1998年12月4日,Sun在这个版本中把Java技术体系拆分为3个方向,分别是面向桌面应用开发的J2SE(Java 2 Platform,Standard Edition)、面向企业级开发的J2EE(Java 2 Platform,Enterprise Edition)和面向手机等移动终端开发的J2ME(Java 2 Platform,Micro Edition)。

​ 在这个版本中出现的代表性技术非常多:EJB、Java Plug-in、Java IDL、Swing等,并且这个版本中的Java虚拟机第一次内置了JIT(Just In Time)编译器。

​ 在语言和API级别上,Java添加了strictfp关键字与现在Java编码中极为常见的Collections集合类。

​ 1999年4月27日,HotSpot虚拟机发布,HotSpot最初由一家名为“Longview Technologies”的小公司开发,1997年被Sun收购。HotSpot虚拟机发布时是作为JDK1.2的附加程序提供的, 后来它成为了JDK1.3之后所有版本的Sun JDK的默认虚拟机。

JDK1.3 – Kestrel

​ 2000年5月8日,JDK1.3发布,相对于JDK1.2,主要改进表现在一些类库上(如数学运算和新的Timer API等),JNDI服务从JDK1.3开始作为一项平台级服务提供(以前JNDI仅仅是一项扩展),使用CORBA IIOP来实现RMI的通讯协议,等等。这个版本还对Java 2D做了很多改进,提供了大量新的Java 2D API,并新添加了JavaSound类库。

​ 自从JDK1.3开始,Sun维持了一个习惯:大约每隔两年发布一个JDK的主板本,以动物名称命名,期间发布的各个修正版本则以昆虫名称作为工程名。

JDK1.4 – Merlin

​ 2002年2月13日,JDK1.4是Java真正走向成熟的一个版本,JDK1.4发布了很多新的技术特性,如:正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等等。

JDK1.5 – Tiger

​ 2004年9月30日,JDK1.5发布。从JDK1.2依赖,Java在语法层面的变化一直很小,而JDK1.5在Java语法易用性上做出了非常大的改进:自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach循环)等语法。在虚拟机和API层面上,这个版本改进了Java的内存模型(Java Memory Model)、提供了java.util.concurrent并发包等。

​ 从JDK1.5版本开始,官方在正式文档与宣传上已不再使用类似JDK1.5的命名,只有程序员内部使用的开发版本号(Developer Version,例如Java-version的输出)中才继续沿用1.5、1.6、1.7的版本号,而公开版本号(Product Version)则改为JDK5、JDK6、JDK8。

JDK1.6 – Mustang

​ 2006年12月11日,JDK1.6发布。在这个版本中,Sun终结了从JDK1.2开始已经有8年历史的J2EE、J2SE、J2ME的命名方式,启用JavaSE6、JavaEE6、JavaME6的命名方式。

​ JDK1.6的改进包括:提供动态语言支持(通过内置Mozilla JavaScript Rhino引擎实现)、提供编译API和微型HTTP服务器API等。

​ 同时,这个版本对Java虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的算法都有相当大的改进。

​ 在2006年11月13日的JavaOne大会上,Sun宣博最终将Java开源,并在随后的一年多时间内,陆续将JDK的各个部分在GPL v2(GNU General Public License v2)协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。Open JDK几乎包括了Sun JDK的全部代码,在JDK1.7中,Sun JDK和OpenJDK除了代码文件头的版权注释外,代码基本完全一样,所以OpenJDK 7与Sun JDK1.7本质上就是一套代码库开发的产品。

JDK1.7 – Dolphin

​ 2009年2月19日,JDK1.7完成了第一个里程碑版本。Sun被Oracle公司收购。JDK1.7的主要改进包括:提供新的G1收集器(G1在发布时仍处于Experimental状态,直至2012年4月的Update 4 中才正式“转正”)、升级类加载架构,加入java.util.concurrent.forkjoin包,异常处理的改进,面向资源的try-catch-finally语句等。

JDK1.8 – Spider

​ 2014年3月18日,JDK1.8发布。JDK1.8的新特性:Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可。新增lambda表达式,提供函数式接口,支持闭包,允许使用 :: 关键字来传递方法或者构造函数引用。

发表评论

电子邮件地址不会被公开。 必填项已用*标注