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月26日,Sun 公司正式发布 J2SE 1.4。

2004年9月30日,Sun 公司正式发布 J2SE 1.5。

2006年12月11日,Sun 公司正式发布 Java SE 6。

2011年7月7日,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 CaliforniaMenlo 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 浏览器。IBMAppleDECAdobeHPOracleNetscapeMicrosoft 等各大公司都纷纷停止了自己的相关开发项目,竞相购买了 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年,Oracle 公司正式收购 Sun,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)。

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声明

维基百科-Java版本历史

码农飞升记-00-Java发展历程的更多相关文章

  1. java发展历程、常用dos命令与jDK工具使用

    Java菜鸟学习之旅 1.勤敲代码 2.必须将课堂上讲的内容学到位 2.1 学到会用 2.2 在学会之前不要自作主张 2.3 当天课程当天完成 3.能说会道 3.1 善于表达 3.2 学会的都能讲 4 ...

  2. Java 发展历程

    JDK 1.0 1991年4月,由 James Gosling 博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(如机顶盒.冰箱.收音机等)上运 ...

  3. Java发展历程

    Java 的发展要追溯到 1991 年,Patrick Naughton(帕特里克·诺顿)和 James Gosling(詹姆斯·高斯林)带领 Sun 公司的工程师打算为有线电视转换盒之类的消费产品设 ...

  4. 如何提高码农产量,基于java的web快速开发平台之自定义表单开发随笔

    老板 :下班前一定写完? 程序猿:可以,下班前能一定给! 第二天早上上班~~~ 老板:这都第二天了,怎么没写完? 程序猿:我还没有下班呢! 哎!程序猿的痛啊 公司上线的项目有不少销售记录表,又是报价单 ...

  5. Java语言的发展历程

    前言 自1946年2月14日世界上首款计算机ENAC问世,第一代计算机语言“机器语言”便诞生了,它使用的是最原始的穿孔卡片,这种卡片上使用的语言只有专家才能理解,与人类语言差别极大.这种语言本质上是计 ...

  6. Java起源、发展历程、环境变量、第一个Java程序等【1】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果,转载请标明原文链接: 本文原创作者:pipi-changing 本文原创出处:http://www.cnblogs.com/pi ...

  7. Java的发展历程

    Java的发展历程充满了传奇色彩. 最初,Java是由Sun公司的一个研究小组开发出来的, 该小组起先的目标是想用软件实现对家用电器进行集成控制的小型控制装置. 开始,准备采用C++,但C++太复杂, ...

  8. 一名Java架构师分享自己的从业心得,从码农到架构师我用了八年

    工作了挺久,发现有个挺有意思的现象,从程序员.高级程序员,到现在挂着架构师.专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了. 这些疑问有些来自于跟小伙伴的交流,有些是我的自问自答 ...

  9. JAVA基础知识|HTTP协议-发展历程

    HTTP 是基于 TCP/IP 协议的应用层协议.它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口. 此文章为转载内容:http://www.ruanyif ...

  10. Java日志体系(一)发展历程

    一.日志框架的分类 门面型日志框架: JCL: Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging SL ...

随机推荐

  1. mount: /dev/sdb1 already mounted or /mnt/hdb busy 导致NameNode无法启动

    最近,公司由于断电导致的服务器关机,等到来电了,重启集群发现Namenode无法启动,查看原因是由于无法加在faimage文件,在查看一下Namenode的磁盘挂在情况(df -h命令查看),发现磁盘 ...

  2. 自定义CoordinatorLayout Behavior 隐藏Footer View

    在用新的控件中,我们可以用Toolbar与CoordinatorLayout实现 向上滚动隐藏的效果,可是官方并没有找到向上隐藏底部导航的功能,有一些第三方的框架实现了. 在Android M,Coo ...

  3. UML分析与设计

    考点: 掌握面向对象的分析与设计 掌握UML描述方法 用例图.类图.序列图.状态转换图 类图:类的属性.方法的识别:类间的各种关系 类图:实体.联系 各种关系图例: 泛化:取公共属性 关联分为聚合.组 ...

  4. 2D游戏编程1--windows编程模型

    一.创建一个windows程序步骤 1.创建一个windows类 2.创建一个事件处理程序 3.注册windows类 4.用之前创建的windows类创建一个窗口 5.创建一个主事件循环   二.存储 ...

  5. 【esri-loader】帮助文档翻译 part1 是什么,怎么安装,为什么要用它

    是什么 esri-loader是一个JavaScript库(包/模块,Web模块化编程的概念),用于在非Dojo框架的Web页面中加载ArcGIS API for JavaScript 3.x或4.x ...

  6. python----re正则模块详解

    今天介绍一下Python中常用的正则表达式处理函数.Python的正则表达式主要有两种方法完成模式匹配:『搜索』和『匹配』 re.match re.match 尝试从字符串的开始全部或者部分匹配某个模 ...

  7. Linux 下磁盘挂载

    Linux 磁盘挂载 新硬盘挂载: fdisk /dev/sdb p # 打印分区 d # 删除分区 n # 创建分区,(一块硬盘最多4个主分区,扩展占一个主分区位置.p主分区 e扩展) w # 保存 ...

  8. What’s Brewing for .NET Developers

    Microsoft hosted its premier fall developer event – Connect(); // 2016 in New York on November 16-17 ...

  9. IntelliJ IDEA中的properties文件乱码转成中文[unicode码转中文]

    在IntelliJ IDEA中,一些.properties后缀的配置文件中的中文常常会是下面的样子,看不懂怎么办? 解决办法:File-->Settings-->File Encoding ...

  10. dos命令收集

    应用程序和进程相关 tasklist  /svc     查看计算机当前正在运行程序 taskkill /f /im "eclipse.exe"   关闭指定的应用程序 taskk ...