Java发展史

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

1995年5月23日,Oak语言改名为Java,并在SunWorld大会上正式发布Java 1.0版本。Java语言第一次提出了“Write Once, Run Anywhere”的口号。

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

1997年2月19日,Sun公司发布了JDK 1.1,Java里许多最基础的技术支撑点(如JDBC等)都是再JDK 1.1版本中提出的,JDK 1.1版的代表技术有:JAR文件格式、JDBC、JavaBeans、RMI等。Java语言的语法也有了一定的增强,如内部类和反射都是在这时候出现的。

直到1999年4月8日,JDK 1.1一共发布了1.1.0至1.1.8这9个版本。从1.1.4以后,每个JDK版本都一个属于自己的名字(工程代号),分别为:JDK 1.1.4-Sparkler(宝石)、JDK 1.1.5-pUMPKIN(南瓜)、JDK 1.1.6-Abigail(阿比盖尔,女子名)、JDK 1.1.7-Brutus(布鲁图,古罗马政治家和将军)、JDK 1.1.8-Chelsea(切尔西,城市名)。

1998年12月4日,JDK迎来了一个里程碑式的重要版本:工程代号Play ground(竞技场)的JDK 1.2。Sun在这个版本中吧Java技术体系拆分为三个方向,分别是面向桌面应用开发的J2SE、面向企业级开发的J2EE、面向手机等移动端开发的J2ME。

1999年4月27日,HotSpot虚拟机诞生。HotSpot最初由一家名为“Longview Techno-logies”的小公司开发,由于HotSpot的优异表现,这家公司在1997年被Sun公司收购。Hot-Spot虚拟机刚发布时是作为JDK 1.2的附加程序提供的,后来它成为JDK 1.3及之后所有JDK默认的Java虚拟机

2000年5月8日,工程代号为Kestrel(美洲红隼)的JDK 1.3发布。相对于JDK 1.2,JDK 1.3的改进主要体现在Java类库上(如数学运算和新的Timer API等),JNDI服务从JDK1.3开始被作为一项平台级服务提供(以前JNDI仅仅是一项扩展服务),使用CORBA IIOP来实现RMI的通信协议等等。这个版本还对Java 2D做了很多改进,提供了大量新的Java 2D API,并且新添加了JavaSound类库。JDK 1.3有1个修正版本JDK 1.3.1,工程代号为Lady bird(瓢虫),于2001年5月17日发布

自从JDK 1.3开始,Sun公司维持着稳定的研发节奏,大约每隔两年发布一个JDK的主版本,以动物命名,期间发布的各个修正版本则以昆虫座位工程代号。

2002年2月13日,JDK 1.4发布,工程代号为Merlin(灰背隼)JDK 1.4是标志着Java真正走向成熟的一个版本,J端口1.4同样带来了很多新的技术特性,如正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等等。JDK1.4有两个后续修正版:2002年9月16日发布的工程代号为Grasshopper(蚱蜢)的JDK 1.4.12003年6月26日发布的工程代号为Mantis(螳螂)的JDK 1.4.2

2004年9月30日,JDK 5发布,工程代号为Tiger(老虎)Sun公司从这个版本开始放弃了“JDK 1.x”的命名方式,将产品版本号修改成了“JDK x”。从JDK 1.2以来,Java在语法层面上的变动一直很小,而JDK 5在Java语法易用性上做出了非常大的改进。如:自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach循环)等语法特性都是在JDK 5中加入的。在虚拟机和API层面上,这个版本改进了Java的内存模型、提供了java.util.concurrent并发包等。另外,JDK 5是官方声明可以支持Windows 9x 操作系统的最后一个JDK版本。

2006年12月11日,JDK 6发布,工程代号为Mustang(野马)在这个版本中,Sun公司终结了从JDK 1.2开始已经有八年历史的J2EE、J2SE、J2ME的产品线命名方式,启用JavaEE6、JavaSE6、JavaME6的新命名来代替。JDK6的改进包括:提供初步的动态语言支持(通过内置Mozilla JavaScript Rhino引擎实现)、提供编译期注解处理器和微型HTTP服务器API等等。同时,这个版本对Java虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的实现都有相当多的改动。

在2006年11月13日的JavaOne大会上,Sun公司宣布计划要把Java开源,在随后的一年多时间内,它陆续地将JDK的各个部分在GPL v2协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。

2009年2月19日,工程代号为Dolphin(海豚)的JDK 7完成了其第一个里程碑版本

按照JDK 7最初的功能规划,一共会设置十个里程碑,最后一个里程碑版本原本计划定于2010年9月9日结束,但由于各种原因,JDK 7最终无法按计划完成。JDK 7最原始功能清单,本应是一个包含许多重要改进的JDK版本,其中规划的子项目都为Java业界翘首以盼,包括:

Lambda项目:支持Lambda表达式,支持函数式编程。

Jigsaw项目:虚拟机层面的模块化支持。

动态语言支持:Java是静态语言,为其他运行在Java虚拟机上的动态语言提供支持。

Garbage-First收集器。

Goin项目:Java语法细节进化。

令人惋惜的是,JDK 7开发期间,Sun公司相继在技术竞争和商业竞争中陷入泥潭,公司的股票市值跌至仅有高峰时期的3%,已无力推动JDK 7的研发工作按计划继续进行。为了尽快结束JDK 7长期跳票的问题,Oracle收购Sun公司后随即宣布马上实行“B计划”,大幅裁减了JDK 7预定目标,以保证JDK 7的正式版能够于2011年7月28日准时发布。“B计划”的主要措施是把不能按时完成的Lambda项目、Jigsaw项目和Coin项目的部分改进延迟到JDK 8之中。

最终JDK 7包含的改进有:提供新的G1收集器(G1在发布时依然处于Experimental状态,直至2012年4月的Update4中才正式商用)、加强对非Java语言的调用支持、可并行的类加载架构等。

2009年4月20日,Oracle宣布正式以74亿美元的价格收购市值层超过2000亿美元的Sun公司,传奇的Sun Microsystems从此落幕称为历史,Java商标正式划归Oracle所有。

2014年3月18日,JDK 8第一个正式版本发布(原定于2013年9月发布的)。JDK 8提供的新特性包括:

对Lambda表达式支持,这让Java语言拥有了流畅的函数式表达能力。

内置Nashorn JavaScript引擎的支持。

新的时间、日期API。

彻底移除HotSpot的永久代等。

2017年9月21日,JDK 9发布(原计划在2016年发布的)。增加了Jigsaw支持,增强了若干工具(JS Shell、JLink、JHSDB等),整顿了Hotspot各个模块各自为战的日志系统,支持HTTP2客户单API等91个JEP。

2018年3月20日,JDK 10日期发布。这版本主要研发目标是内部重构,诸如统一源仓库、统一垃圾收集器接口、统一即时编译器接口等。

2018年10月,JavaOne 2018在旧金山举行,这会是最后一届JavaOne大会,这个在1996年伴随Java一同诞生、成长的开发者年度盛会,竟是Oracle下一个裁撤的对象,此外还有Java Mission Control的开发团队,也在2018年6月被Oracle解散。

2018年9月25日,JDK 11发布。这是一个LTS版本的JDK,包含17个JEP,其中有ZGC这样的革命性的垃圾收集器出现,也有把JDK 10的类型推断加入Lambda语法这种可见的改进。

2019年3月20日,JDK 12发布,只包含8个JEP,其中主要有Switch表达式、Java微测试套件(JMH)等新功能,最引入注目的特性无疑是加入了又RedHat领导开发的Shen-andoah垃圾收集器。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值