第一章 1.Java发展史

概述

从JDK1.0的诞生到现在已经有23(2019-1996)年的历史了。再来回顾一下Java的发展轨迹和历史变迁。

1991-4(Oak)

由James Gosling博士领导的绿色计划开始启动,此计划的目的就是开发一种能够在各种消费性电子厂品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个计划的产品就是Java语言的前身:Oak(橡树)。

1995-5-23

Oak语言改名为Java,并且在SunWorld大会上正式发布了Java1.0版本。Java语言第一次提出“Write Once, Run Anywhere”的口号。

1996-1-23(JDK1.0)

JDK1.0发布,Java语言有了第一个正式版本的运行环境。

1996-5

Sun公司于美国旧金山矩形首届JavaOne大会,从此JavaOne成为全世界数百万Java语言开发者每年一度的技术盛会。

1997-2-19(JDK1.1)

Sun发布JDK1.1,Java基础的一些最基础的支撑点都是在1.1中发布的,包括:JAR文件格式、JDBC、JavaBeans、RMI。Java语法也有了一定的发展,如内部类和反射。

1998-12-4(JDK1.2)

里程碑版本:JDK1.2(Playground竞技场),这个版本中把Java技术体系拆分为3个方向:面向桌面的J2SE、面向企业级的J2EE以及面向手机等移动开发的J2ME。EJB、Java Plug-in、Java IDL、Swing等技术出现,第一次内置了JIT编译期。

1999-4-27

HotSpot虚拟机发布,是由一家名为“Longview Technologies”的小公司开发的,因为HotSpot表现优异,这家小公司在1997年被Sun公司收购了,在JDK1.3之后成为Sun JDK的默认虚拟机。

2000-5-8(JDK1.3)

JDK1.3(Kestrel美洲红隼)发布,增加了数学运算和新的TimerAPI,自JDK1.3开始,Sun维持了一个习惯:大约每隔两年发布一个JDK版本,以动物命名,期间发布的各个修正版本则以昆虫作为工程名称。

2002-2-13(JDK1.4)

JDK1.4(Merlin灰背隼)发布,JDK1.4是Java真正走向成熟的一个版本。正则表达式、异常链、NIO、日之类、XML解析器和XSLT转换器等特性加入。

2004-9-30(JDK1.5)

JDK1.5(Tiger老虎)发布,这个版本在Java语法易用性上做出来非常大的改进。例如,自动装箱、泛型、动态注解、枚举、可变长参数、foreach等语法特性都加入了。

2006-12-11(JDK1.6)

JDK1.6(Mustang野马)发布,这个版本中,Sun终结了从JDK1.2开始已经有8年历史的J2ME、J2SE、J2EE的命名方式,启用Java SE 6、Java EE 6、Java ME 6的命名方式。这个版本对Java虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的算法都有相当多的改动。

后续(被收购)

在2006年11月13日的JavaOne大会上,Sun公司宣布最终将Java开源,并且随后的一年多时间内,陆续将JDK的各个部分在GPL协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。除了极少量的产权代码外,OpenJDK几乎包括了Sun JDK的全部代码。

JDK1.6发布以后,由于代码的复杂性的增加、JDK开源、开发JavaFX、经济危机以及Sun收购案等原因,Sun在JDK发展意外的事情上耗费了很多资源,JDK的更新没有再维持两年发布一个朱版本的速度。

2009年2月19日,工程代号为Dolphin(海豚)的JDK1.7完成了其第一个里程碑版本。根据JDK1.7的功能规划,一共设置了10个里程碑,最后一个里程碑版本原计划于2010年9月9日结束,但由于种种原因,JDK1.7最终无法按计划完成。

从JDK1.7最开始的功能规划来看,它本应是一个包含许多重要改进的JDK版本,其中的Lamdba项目、Jigsaw项目、动态语言支持、GarbageFirst收集器和Coin项目等子项目对于Java业界都会产生深远的影响。在JDK1.7开发期间,Sun公司由于相继在技术竞争和商业竞争中都陷入泥潭,公司的股票市值跌至仅有高峰时期的3%,已经无力推动JDK1.7的研发工作按正常计划进行。为了尽快结束JDK1.7长期“跳票”的问题,Oracle公司收购了Sun公司后不久便选择将实行“B计划”,大幅裁剪了JDK1.7预定目标,以保证JDK1.7的正式版能够与2011年7月28日准时发布。“B计划“把不能完成的lamdba项目Jigsaw项目和Coin项目的部分改动推迟到JDK1.8中。

从Java SE 7 Update 4起,Oracle开始支持Mac OS X操作系统,并在Update 6中达到完全支持的程度,同时,在Update 6中还对ARM指令集架构提供了支持,至此,官方提供的JDK可以运行与Windows、Linux、Solaris和Mac OS平台上,支持ARM、x86、x64和Sparc指令集架构类型。

2009年4月20日,Oralce公司宣布正式以74亿美元的价格收购了Sun公司,Java商标从此正式归Oralce所有(Java语言本省并不属于哪家公司所有,它由JCP组织进行管理,尽管JCP主要是由Sun公司或者说Oracle公司所领导的)。由于此前Oracle公司已经收购了另外一家大型的中间件企业BEA公司,在完成对Sun公司的收购之后,Oracle公司分别从BEA和Sun中取得了目前三大商业虚拟机的其中两个:JRockit和HotSpot,Oraclke公司宣布在未来一到两年的时间内,将把这两个优秀的虚拟机互相取长补短,最终合二为一。难道是目前的G1?

根据Oracle官方提供的信息,JDK1.8的第一个正式版本将于2013年9月发布,JDK1.8将会提供在JDK1.7中规划过,但最终未能在JDK1.7中发布的特性,即Lamdba表达式、Jigsaw(很不幸,随后Oracle又宣布Jigsaw在JDK1.8中依然无法完成,需要到JDK1.9)和JDK1.7中未实现的一部分Coin等。

在2011年的JavaOne大会上,Oracle公司还提到了JDK1.9的长远规划,希望未来的Java虚拟机能够管理数GB的Java堆(目前看是实现了),能够更高效的与本地代码集成,并且令Java虚拟机运行时尽可能的减少人工干预,能够自动调节。

引用: 周志明的《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版

猜你喜欢

转载自www.cnblogs.com/wuqinglong/p/11088052.html