深入理解Java虚拟机(1)--java的发展历史

 2019-12-22 10:56  阅读(854)
文章分类:JVM

1991年4月,由James Gosling 博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能在各种消费性电子产品(如机顶盒,冰箱,收音机等)上运行的产品架构。这个计划的产品就是Java语言的前身:Oak(橡树)。Oak在当时的消费品市场上并不算成功,但随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位并蜕变成为Java。

1995年5月23日,Oak语言改名为Java,并且在SunWorld大会上正式发布java1.0版本。Java语言第一次提出了“Write Once,Run Anywhere”(一次编译,到处运行)的口号。

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

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

1998年12月4日,JDK迎来了里程碑式的版本JDK1.2,工程代号Playground(竞技场)(从JDK1.1.4之后,每个JDK版本都有一个自己的名字,即工程代号,如:JDK1.1.4-Sparkler(宝石)、JDK1.1.5-Pumpkin(南瓜)),Sun在这个版本把Java技术体系拆分成了个方向,分别是面向桌面的应用开发J2SE(Java 2 Platform ,Standard Edition)、面向企业级开发的J2EE(Java 2 Platform,Enterprise Edition)和面向手机的移动端开发的J2ME(Java 2 Platform,Micro Edition)在这个版本中Java虚拟机第一次内置了JIT(Just In Time)编译器(JDK1.2曾并存过3个虚拟机,Classic VM、HotSpot VM和Exact VM)。在语言和API级别上,Java添加了strictfp 关键字与现在Java编码之中极为常用的一系列Collections集合类

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

2000年5月8日,工程代号为Kestrel(美洲红隼)的JDK1.3发布,JDK1.2的改进主要表现在一些类库上(如数学运算和新的Timer API等)。

2002年2月13日,JDK1.4发布,工程代号为Merlin(灰背隼)。JDk1.4是Java真正走向成熟的一个版本,Compaq、Fujitsu、SaS、Symbian、IBM等著名的公司都有参与甚至实现自己独立的JDK1.4。哪怕是十多年后的今天,仍然有很多主流应用(spring、struts等)能直接运行在JDK1.4之上。JDK1.4发布了很多新的特性,如正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等

2004年9月30日,JDK1.5发布,工程代号Tiger(老虎)。JDK1.5在语法易用性上做出了非常大的改进。例如,自动拆装箱、泛型、动态注解、枚举、可变长参数,遍历循环(foreach循环)等语法语法特性都在JDK1.5中加入的。在虚拟机和API层面上,这个版本改进了Java的内存模型(Java Mozilla Model,JMM)、提供了java.util.concurrent并发包等

2006年12月11日,JDK1.6发布,工程代号Mustang(野马)。在这个版本中,Sun终结了从JDk1.2开始已经有8年历史的J2EE、J2SE、J2ME的命名方式,启用java SE 6、Java EE 6、Java ME 6的命名方式。JDK1.6的改进包括:提供动态语言支持(通过内置Mozilla javascript Rhino引擎实现)、提供编译API和微型HTTP服务器API等。同时这个版本对Java虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的算法都有相当多的改进

2006年11月13日的JavaOne 大会上,Sun公司宣布最终将java开源,并在随后的一年多的时间内,陆续将JDK的各个部分在GPL v2(GNU General Public License v2)协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。

2009年2月19日,工程代号Dolphin(海豚)的JDK1.7发布。JDK1.7的主要改进包括,提供新的G1收集器(G1在发布时依然处于Experimental状态,直至2012年4月的Update4中才正式“转正”)、加强对非Java语言的调用支持、升级类加载架构等

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

2014年3月19日,工程代号Spider (蜘蛛)的JDK1.8发布,JDK1.8的主要改进包括:Lambda表达式(以及因之带来的函数式接口,很多原有类都做了变更,但能够与以往版本兼容,堪称奇功!),还有Stream API流式处理,joda-time等等一些新特性。

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 深入理解Java虚拟机(1)--java的发展历史

相关推荐