1.1.2 Java发展史上的里程碑

下面,将简要介绍一下Java发展史上的重大事项。

1990年,在Sun计算机公司中,由Patrick Naughton、Mike Sheridan及James Gosling领导的小组Green Team开始研发一种可控制家用电子产品的新型计算机软件技术,并希望能够研究出一种可以跨平台的系统。开始他们试着在C++的基础上做修改,但一直无法克服编译器的问题,所以决定自行开发新的程序语言—Oak。这里的Oak已经具备安全性、网络通信、面向对象、垃圾回收、多线程等特性。后来他们发现Oak已经被其他公司注册,于是改名为Java。

1995年,Sun正式发布Java和HotJava产品,Java首次公开亮相。

1996年1月23日Sun Microsystems发布了JDK 1.0。这个版本包括了两部分:运行环境(即JRE)和开发环境(即JDK)。在运行环境中包括了核心API、用户界面API、发布技术、Java虚拟机(JVM)几个部分。开发环境包括了编译Java程序的编译器(即javac)。在JDK 1.0时代,Java使用一款叫作Classic的虚拟机解释执行Java字节码。

1997年2月18日Sun发布了JDK 1.1,在该版本中,已经支持AWT、内部类、JDBC、RMI、反射等特性。同年,Sun收购了一家叫作Longview Technologies的公司,从而获得了Hotspot虚拟机。

同在1997年,Jim Hugunin创造了Jython,但由于各种原因,Jython的发展相当缓慢,但到现在为止,Jython已经取得了长足的进步,甚至已经可以运行Django框架。

1998年,JDK 1.2版本发布(从这个版本开始的Java技术都称为Java 2)。Java 2不仅能兼容智能卡和小型消费类设备,还能兼容大型的服务器系统,它使软件开发商、服务提供商和设备提供商更加容易抢占市场机遇。这一开发工具极大地简化了编程人员编制企业级Web应用的工作。同时Sun发布了JSP/Servlet、EJB规范,将Java分成了J2EE、J2SE和J2ME。这表明了Java开始向企业、桌面应用和移动设备应用3大领域挺进。此时的Java已经做到了解释执行和编译执行混合运行。

2000年,JDK 1.3 发布,Hotspot虚拟机成为Java的默认虚拟机。

2002年,JDK 1.4 发布,古老的Classic虚拟机退出历史舞台。

2003年年底,Java平台的Scala正式发布,同年Groovy也加入了Java阵营。

2004年,JDK 1.5 发布。同时JDK 1.5改名为J2SE 5.0。在这个版本中,Java语言做了大量的改进,比如支持了泛型、注解、自动装箱拆箱、枚举类型、可变长参数、增强的foreach循环等。语法上的简化和改进是这一版本的一大特色。

2006年,JDK 1.6发布。同年,Java开源并建立了OpenJDK。顺理成章,Hotspot虚拟机也成为了OpenJDK中的默认虚拟机。

2007年,Java平台迎来了新伙伴Clojure。

2008年,Oracle收购了BEA,得到了JRockit虚拟机。

2009年,Twitter宣布把后台大部分程序从Ruby迁移到Scala,这是Java平台的又一次大规模应用。

2010年,Oracle收购了Sun,获得最具价值的Hotspot虚拟机。此时,Oracle拥有市场占用率最高的两款虚拟机Hotspot和JRockit,并计划在未来对它们进行整合。

2011年,JDK 1.7发布。在JDK 1.7中,正式启用了新的垃圾回收器G1,支持了64位系统的压缩指针及NIO 2.0,同时新增的invokedynamic指令也是该版本的一大特色。

2014年,JDK 1.8发布。在JDK 1.8中,全新的Lambda表达式是一大亮点,它彻底改变了Java的编程风格和习惯。

Oracle计划在2016年发布JDK 1.9。届时,最令人期待的功能应该是Java的模块化。

2017年,JDK 9发布。在JDK 9中,引入了Java模块化,允许开发者根据项目的需求自定义模块组件,使Java能够更加容易地应用到小型计算设备。

2018年,JDK10发布,引入了var 局部变量类型推断,可以有效地减少代码的冗余,统一了垃圾回收接口,优化了G1 垃圾回收器的并行完整垃圾回收。

注意:在本书中,JDK 1.6等同于JDK 6,JDK 1.7等同于JDK 7,JDK 1.8等同于JDK 8,JDK 1.9等同于JDK 9,JDK 1.10等同于JDK 10。