码农飞升记-00-Java发展历程
1.Java发布历程
1995年5月23日,Sun 公司正式发布Java 和 HotJava 浏览器。
1996年1月23日,Sun 公司正式发布 JDK 1.0。
1997年2月19日,Sun 公司正式发布 JDK 1.1。
1998年12月8日,Sun 公司正式发布 J2SE 1.2。
2000年5月8日,Sun 公司正式发布 J2SE 1.3。
2002年2月6日,Sun 公司正式发布 J2SE 1.4。
2004年9月30日,Sun 公司正式发布 J2SE 1.5。
2006年12月11日,Sun 公司正式发布 Java SE 6。
2011年7月28日,Oracle 公司发布了 Java SE 7。
2014年3月18日,Oracle 公司发布了 Java SE 8 (特殊的 LTS)。
2017年9月21日,Oracle 公司发布 Java SE 9 (non-LTS)。
2018年3月20日,Oracle 公司发布 Java SE 10 (non-LTS)。
2018年9月25日,Oracle 公司发布 Java SE 11 (LTS)。
2019年3月19日,Oracle 公司发布 Java SE 12 (non-LTS)。
2019年9月17日,Oracle 公司发布 Java SE 13 (non-LTS)。
2020年3月17日,Oralce 公司发布 Java SE 14 (non-LTS)。
2020年9月15日,Oracle 公司发布 Java SE 15 (non-LTS)。
2021年3月16日,Oracle 公司发布 Java SE 16 (non-LTS)。
2.Java发展史
Oak 的出现( Java 的雏形)
20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun Microsystems 公司为了抢占市场先机,在1991年成立了一个称为 Green 的项目小组,James Gosling 及其团队一起组成的工作小组在 State of California 州 Menlo Park 市沙丘路的一个小工作室里面研究开发新技术,专攻计算机在家电产品上的嵌入式应用。
由于 C++ 所具有的优势,该项目组的研究人员首先考虑采用 C++ 来编写程序。但对于硬件资源极其匮乏的单片式系统来说,C++ 程序过于复杂和庞大。另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题。为了解决困难,他们首先着眼于语言的开发,假设了一种结构简单、符合嵌入式应用需要的硬件平台体系结构并为其制定了相应的规范,其中就定义了这种硬件平台的二进制机器码指令系统(即后来成为“字节码”的指令系统),以待语言开发成功后,能有半导体芯片生产商开发和生产这种硬件平台。对于新语言的设计,Sun 公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对 C++ 进行了改造,去除了留在 C++ 的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为 Oak 的面向对象语言。
由于在开发 Oak 语言时,尚且不存在运行字节码的硬件平台,所以为了在开发时可以对这种语言进行实验研究,他们就在已有的硬件和软件平台基础上,按照自己所指定的规范,用软件建设了一个运行平台,整个系统除了比 C++ 更加简单之外,没有什么大的区别。1992年的夏天,当 Oak 语言开发成功后,研究者们向硬件生产商进行演示了 Green 操作系统、Oak 的程序设计语言、类库和其硬件,以说服他们使用 Oak 语言生产硬件芯片,但是,硬件生产商并未对此产生极大的热情。因为他们认为,在所有人对 Oak 语言还一无所知的情况下,就生产硬件产品的风险实在太大了,所以 Oak 语言也就因为缺乏硬件的支持而无法进入市场,从而被搁置了下来。
1994年6、7月间,在经历了一场历时三天的讨论之后,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着 Mosaic 浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器 WebRunner。
1995年 Java 的诞生
1995年,互联网的蓬勃发展给了 Oak 机会。业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行。于是,世界各大IT企业为此纷纷投入了大量的人力、物力和财力。这个时候,Sun 公司想起了那个被搁置起来很久的 Oak,并且重新审视了那个用软件编写的试验平台,由于它是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统,而 Oak 也是一种精简的语言,程序非常小,适合在网络上传输。
Sun 公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的 Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将 Oak 更名为 Java(在申请注册商标时,发现 Oak 已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯 Java 咖啡时无意提到的 Java 词语)。
1995年5月23日,Sun 公司在 Sun world 会议上正式发布 Java 和 HotJava 浏览器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和 Microsoft 等各大公司都纷纷停止了自己的相关开发项目,竞相购买了 Java 使用许可证,并为自己的产品开发了相应的 Java 平台。
1996年 Sun 公司发布第一个 JDK
1996年1月23日,Sun 公司发布了 Java 的第一个开发工具包(JDK 1.0),这是 Java 发展历程中的重要里程碑,标志着 Java 成为一种独立的开发工具。9月,约8.3万个网页应用了 Java 技术来制作。10月,Sun 公司发布了 Java 平台的第一个即时编译器 JIT(Just-In-Time Compiler)。
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术。
1996年9月,约8.3万个网页应用了JAVA技术来制作。
1997年2月19日,JDK 1.1 面世,在随后的3周时间里,达到了22万次的下载量。
1997年4月2日,Java One 会议召开,参会者逾一万人,创当时全球同类会议规模之纪录。
1997年9月,Java Developer Connection 社区成员超过10万。
1998年2月,JDK1.1被下载超过2,00万次。
1998年12月用 J2SE 取代 JDK 命名,以区别 J2EE 和 J2ME 平台
1998年12月8日,JAVA2 企业平台 J2EE 发布,该版本到J2SE 5.0为止的后续版本被更名为 Java 2,而版本名称“J2SE”(Java 2平台,标准版)取代 JDK 以区别 J2EE(Java 2平台,企业版) 和 J2ME(Java 2 Platform,Micro Edition)基础平台。这是 Java 的一个非常重要的版本,它将 Java 平台的大小增加至原先的三倍,在59个程序包中达到了1520个类。
1999年4月27日,HotSpot 虚拟机发布。HotSpot 虚拟机发布时是作为 JDK 1.2 的附加程序提供的,后来它成为了 JDK 1.3 及之后所有版本的 Sun JDK 的默认虚拟机。
1999年6月,Sun 公司发布了第二代 Java 平台(简称为Java2)的3个版本:
J2ME(Java2 Micro Edition,Java2 平台的微型版),应用于移动、无线及有限资源的环境;
J2SE(Java 2 Standard Edition,Java 2 平台的标准版),应用于桌面环境;
J2EE(Java 2 Enterprise Edition,Java 2 平台的企业版),应用于基于 Java 的应用服务器。Java 2 平台的发布,是 Java 发展过程中最重要的一个里程碑,标志着 Java 的应用开始普及。
2000年5月8日,JDK 1.3 发布。
2000年5月29日,JDK 1.4 发布。
2001年6月5日,NOKIA 宣布,到2003年将出售1亿部支持 Java 的手机。
2001年9月24日,J2EE1.3 发布。
2002年2月26日,J2SE1.4 发布。自此 Java 的计算能力有了大幅提升,与 J2SE1.3 相比,其多了近62%的类和接口。在这些新特性当中,还提供了广泛的 XML 支持、安全套接字(Socket)支持(通过SSL与TLS协议)、全新的 I/OAPI 、正则表达式、日志与断言。
2004年9月30日,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5 更名为 Java SE 5.0(内部版本号1.5.0),代号为 “Tiger”,Tiger 包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化 I/O 及可变参数。
2005年发布J2SE 6并更名为 Java SE 6(全平台更名移除'2')
2005年6月,JavaOne 大会召开,Sun 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字“2”:J2EE 更名为 Java EE,J2SE 更名为 Java SE,J2ME 更名为 Java ME。
2006年 Sun 宣布 Java 基于 GPL 开源
2006年11月13日,Sun 公司宣布 Java 全线采纳 GNU General Public License Version 2,将 Java 技术作为免费软件对外发布,从而正式公开了Java 平台标准版的第一批源代码,以及 Java 迷你版的可执行源代码。
2006年12月11日,Sun把原本的名称“ J2SE ”改为“ Java SE ”,然后再从版本号中去掉“.0”,而开发者内部编号仍然是1.6.0。这个版本是根据 JSR 270 开发的。在发展阶段,新版本大概每周都发布包括一些功能增强和漏洞的修复。Beta 版本在2006年2月和6月发布,也就是为什么2006年12月11日变成最终的版本。
2006年12月23日, Java SE 6 正式发布。
从2007年3月起,全世界所有的开发人员均可对 Java 源代码进行修改。
2009年 Sun 被 Oracle 收购
2009年4月20日,Oracle 公司宣布收购 Sun。
2009年12月,Sun 公司发布Java EE 6。
2010年1月27日,Oracle 公司完成收购 Sun。
2010年4月2日,Java 编程语言的共同创始人之一 James Gosling 从 Oracle 公司辞职。
2010年11月,由于 Oracle 公司对于Java社区的不友善,因此Apache扬言将退出JCP。
2011年7月28日,Oracle 公司举行了全球性的活动,以庆祝 Java7 的推出,随后 Java7 正式发布。
2014年3月 Java8 (特殊的 LTS)发布
2014年3月18日,Oracle 公司发布了 Java SE 8(特殊的 LTS)。
2017年9月 Java9 (non-LTS)发布,并启动新的版本控制和发布节奏模型
2017年9月21日,Oracle 公司发布 Java SE 9(non-LTS),并启动新的版本控制和发布节奏模型。
整体发布节奏为每六个月发布一个新版本,其中每六个月发布一次non-LTS版本,每三年发布一次LTS版本(当二者发布时间冲突时,优先发布LTS版本,non-LTS版本向后推迟一个周期)。
non-LTS版本发布后会得到六个月的商业支持,到期后会被新发布版本取代;LTS版本发布后会得到至少八年的商业支持(根据市场需要有可能会延长),到期后会被新的LTS版本取代。
2018年3月20日,Oracle 公司发布 Java SE 10(non-LTS)。
2018年9月 Java11 (LTS)发布
2018年9月25日,Oracle 公司发布 Java SE 11(LTS)。
先前版本中的许多功能已被删除,特别是 Java applets 和 Java Web Start 不再可用,JavaFX, Java EE 和 CORBA 模块已从 JDK 中删除。
2019年3月19日,Oracle 公司发布 Java SE 12(non-LTS)。
2019年9月17日,Oracle 公司发布 Java SE 13(non-LTS)。
2020年3月17日,Oralce 公司发布 Java SE 14(non-LTS)。
2020年9月15日,Oracle 公司发布 Java SE 15(non-LTS)。
2021年3月16日,Oracle 公司发布 Java SE 16(non-LTS)。
参考资料(排名不分先后)
Oracle JDK 主页
维基百科-Java
百度百科-Java
Oracle战略收购Sun声明
百度百科-James Gosling
维基百科-James Gosling
维基百科-Java版本历史
OpenJDK-JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
维基百科-Java applets
百度百科-JavaApplet
维基百科-Java Web Start
百度百科-Java Web Start
维基百科-JavaFX
百度百科-JavaFX
维基百科-Java EE
百度百科-Java EE
维基百科-CORBA
百度百科-CORBA