Java版本历史

✍ dations ◷ 2025-07-26 22:02:14 #软件史,Java平台,软件版本列表

Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包。从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JCP使用Java规范请求(Java Specification Requests,JSRs)来建议和定义对Java平台内容的新增和修改。Java语言由Java语言规范(Java Language Specification,JLS)定义,对JLS的更改则根据JSR 901管理。

除了语言上的变化,多年来Java标准库(JCL)发生了巨大的变化,从JDK 1.0中的几百个类暴增到J2SE 5中的三千多个类。Swing、Java2D等的全新API被加入其中,而许多原本JDK 1.0的类和方法已被弃用。当然,仍然有一些程序可以将Java程序从新版本的Java平台转换为较旧版本(例如Java 5.0降转到1.4)。 

Java 7发布后,Oracle承诺回到以前每两年发布一次的发布周期。但在2013年时,Oracle却宣布他们将Java 8延迟一年发表,官方表示是为了修复Java的安全漏洞。

2017年9月,Java平台的主架构师 Mark Reinhold 发出提议,要求将Java的功能更新周期从之前的每两年一个新版本缩减到每六个月一个新版本。该提议获得了通过,并在提出后不久生效。

Java 8 与 Java 11 为目前提供支持的LTS(长期支持)版本;Java 10 是上一个快速发布版本,且已不再被支持。2018年9月,随着 Java 11 的发布,Java 10 自当日起不再被支持。Oracle 将在 2019 年 1 月前为商业用途中的 Java 8 长期支持,而针对非商用的更新将继续提供,直至 2020 年 12 月;此外,AdoptOpenJDK 也为 Java 8 提供免费更新。针对 Java 11 的长期支持将不再由 Oracle 提供,而是改由 OpenJDK 社区的 AdoptOpenJDK 提供。

第一个1995年发布的alpha和beta Java公开版本,API和ABI非常不稳定。 支持Java Web浏览器被取名为WebRunner。

第一个版本于1996年1月23日发布,叫做为Oak。而真正第一个稳定的版本JDK 1.0.2,被称作Java 1。

1997年2月19日发布。新增功能主要包括:

1998年12月8日发布,代号为Playground。 该版本到J2SE 5.0的后续版本被更名为Java 2,而版本名称“J2SE”(Java 2平台,标准版)取代JDK以区别J2EE(Java 2平台,企业版) 和J2ME(Java 2 Platform,Micro Edition)基础平台。这是Java的一个非常重要的版本,它将Java平台的大小增加至原先的三倍,在59个程序包中达到了1520个类。主要增加包括:

代号为Kestrel。在的版本中最著名的改变包括:

代号为Merlin。2002年2月6日发布了JSR 59,是第一个在JCP下开发的Java平台。主要的变化包括︰

Java 1.4开放支源和安全性更新于2008年10月终止。Oracle客户的付费的安全性更新也在2013年2月结束。

代号为Tiger。这个在2004年9月30日发布的版本原本以1.5编号,也就是仍然使用内部版本编号。这个数字辈改变是为了“更好地反映成熟度、稳定性、可扩展性和 J2SE 的安全水准”。这个版本是在JSR 176底下被开发。

J2SE 5.0在2008年4月8日进入其即将停止公开更新的期间;2009年11月3日正式不公开开放更新。Oracle客户直到2015年5月都能透过付费的方式获取更新 。 

Tiger增加了若干个重要的新语言功能。

另外也有以下这些对于基本程序库的改善:

Java 5是Java的最后一个正式支持Microsoft Windows 98和Windows ME的版本,而Windows Vista是J2SE 5在2009年10月的Java 5生命周期之前支持的Windows的最新版本。

Java 5 Update 5(1.5.0_05)是Java在Windows 95(装了Internet Explorer 5.5 的)和Windows NT 4.0上运行的最后一个版本。

Java 5 最初出现在 Mac OS X 10.4 (Tiger),到了 Mac OS X 10.5 (Leopard)时成为了默认的 Java 版本。

此版本推出了JAVA语言中,一个新的版本控制系统,而旧版本控制系统仍然可以在开发者资源库中继续使用。

Both version numbers "1.5.0" and "5.0" are used to identify this release of the Java 2 Platform Standard Edition. Version "5.0" is the product version, while "1.5.0" is the developer version. The number "5.0" is used to better reflect the level of maturity, stability, scalability and security of the J2SE.

这种对应关系持续维持到以后的版本 (Java 6 = JDK 1.6, Java 7 = JDK 1.7, 以此类推).

代号为Mustang。版本发布于2006年12月11日,Sun把原本的名称“J2SE”改为“Java SE”,然后再从版本号中去掉“.0”,而开发者内部编号仍然是1.6.0。这个版本是根据JSR 270开发的。

在发展阶段,新版本大概每周都发布包括一些功能增强和漏洞的修复。Beta版本在2006年2月和6月发布,也就是为什么2006年12月11日变成最终的版本。 

本版本包含的主要更改:

Java 6可以安装到在64位(Core 2 Duo和更高版本)处理器机器上运行的Mac OS X 10.5(Leopard)。 运行Mac OS X 10.6(Snow Leopard)的32位和64位机器也支持Java 6。

Java 6在2013年2月到了它支持生命周期的尾声,此时所有公开更新(包括安全更新)都计划停止。 Oracle在2013年3月和4月发布了另外两个对Java 6的更新,修补了一些安全漏洞。

JAVA 6发布后,Sun和后来的Oracle之后,发布了几个更新,而不更改任何公开的API,增强了最终用户的可用性或固定的漏洞。自2016 年1月,JAVA 6和其它更旧的版本已无法从Oracle下载。

-XX:+DoEscapeAnalysis 选项直接指向HotSpot JIT compiler以使用escape analysis来决定本地端对象是否可以被分配到stack上而不是heap里

一些开发人员已经注意到这个版本中引入的一个问题,它导致调试器似乎是随意地错过断点(breakpoints)。 Sun有一个相应的漏洞,也是一个追踪问题。 解决方法适用于客户端和服务端的虚拟机。 使用 -XX:+UseParallelGC 选项将可以避免错误。另一个解决方案是降版到update 13,或是升级到update 16。

 JAVA 7 (代号Dolphin) 是一个重大的更新,在 2011年7月7日亮相,并在2011年7月28日开放给开发者使用。发展时期被分类成十三的重要阶段,最后一个阶段在2011年6月6日完成。平均来看,每个里程碑各有8个版本(就是一般包括的功能增强和漏洞修复) 。在 OpenJDK 7 项目中的功能清单中列出了很多的改变。

在 Java 7 中新增的功能包括:

Lambda(Java 对匿名函数的实现)、Jigsaw(Java 对模块化的实现),以及其它一些 Coin 项目中的内容在 Java 7 里被放弃,而转为Java 8一部分(其中 Jigsaw 直至 Java 9 才得到实现)。

从2012年4月开始,Java 7 一直是java.com的默认下载版本,直到 Java 8 发布。

Oracle 在每季度发布 Java 7 家族每季的公开更新,至2015年4月产品支持生命周期结束时停止。

Java 8 于2014年3月18日发布, 包含了一些原本被项目在 Java 7却延迟的功能。

这些功能改进在 JDK Enhancement Proposals (JEPs) 的指导下得到了集成。

Java 8 不再支持 Windows XP ,但JDK 8 第 25 版更新仍然可以在 Windows XP安装和运行。 先前JDK 8的更新版本可以在XP中运行,但必须通过强制解压安装程序来进行安装。

2014年10月后,Java 8 成为官方网站上默认的下载版本。

在2011年的JavaOne中,Oracle讨论了一些他们希望在2016年于Java 9中发布的功能。Java 9 应当对千兆级堆拥有更好的支持,同时能够更好地集成本机代码,且拥有新的垃圾收集器G1和能够自我调节的JVM。2016年初,Java 9 的发布被重新定为2017年3月;2017年3月时,发布日期又被拖延至2017年7月;后来又因Java执行委员会对Jigsaw项目实现的分歧而最终定为2017年9月21日,在此期间Oracle回应了部分疑问,并对一些重要的技术问题进行了修正。在2017年6月的最后几天,JCP对拟议的模块系统方案达成了共识。

Java 9 的首个发布候选版于2017年8月9日发布,首个稳定版于2017年9月21日发布。

OpenJDK 10 于2018年3月20日发布。此次更新包含以下12个新特性:

JDK 11 于2018年9月25日发布。Java 11 包含如下更新:

JDK 12 于2019年3月19日发布。该版本包含较多新特性,例如:

JDK 13 于2019年9月17日发布。该版本包含以下新特性以及很多的强化和很多的漏洞修补。

OpenJDK 是一个自由开放源始码软件实现在Java Platform, Standard Edition (Java SE)。

在OpenJDK之前,许多各式各样不同的公司和组织推出好几个免费的Java实现。其中一个例子是Apache Harmony。 IBM也有提供Java实现,而RedHat则是通过IcedTea项目提供它:一个用于OpenJDK的架构和集成项目。

相关

  • 克拉克·L·赫尔克拉克·莱昂纳多·赫尔(Clark Leonard Hull,1884年5月24日-1952年5月10日),美国著名心理学家,新行为主义代表人物之一。赫尔出生于纽约州阿克伦市,家境贫穷,多次辍学,直到16岁才开始
  • FeIsub2/sub碘化亚铁是无机化合物,化学式为FeI2。红棕色三方晶体,空间群P 3m1,其中a = 0,404 nm,c = 0,675 nm,Z = 1。易溶于水。可形成FeI2·n H2O,其中n = 2, 4, 6, 9。在有机反应中作为催
  • 曼尼普尔Dr. Najma Heptulla曼尼普尔邦(印地语:मणिपुर,孟加拉语:মণিপুর,IAST转写:Maṇipūr)是印度东北的一个邦。该邦成立于1972年,东以缅甸为界,西与阿萨姆邦相连,南以米佐拉
  • 陈德亮陈德亮 (Deliang Chen, 1961年7月21日-),出生于江苏省泰州市,气候学家。1983年毕业于南京大学大气科学系,1992年获德国美因茨大学地球科学博士学位。2000年获瑞典哥德堡大学物理气
  • 加拿大臂2号移动维修系统(Mobile Servicing System,简称MSS,更广为人知的是它主要的部件加拿大臂2)是连接在国际空间站上的1个机器人系统。在空间站的装配和保养上扮演着关键的角色。它在空
  • 伏见宫贞爱亲王伏见宫贞爱亲王(安政五年四月二十八日(1858年6月9日)- 大正十二年(1923年)2月4日)是一位日本皇族与陆军军人。他是伏见宫邦家亲王第14王子,母亲为鹰司政熙之女鹰司景子。为伏见宫第2
  • IQT电信In-Q-Tel电信,简称IQT,总公司位于美国弗吉尼亚州阿灵顿,是一个不以营利为目的风险投资公司,投资于高科技公司的唯一目的是保持中央情报局能随时配备最新的信息技术来支持联合国
  • 恩斯特·荣格恩斯特·荣格(德语:Ernst Jünger,1895年3月29日-1998年2月17日),德国军人、小说家、昆虫学家,以他的第一次世界大战回忆录《钢铁风暴》而广为人知。1895年3月29日生于德国海德堡,1
  • 皮埃尔·约瑟夫·博纳埃尔皮埃尔·约瑟夫·博纳埃尔(法语:Pierre Joseph Bonnaterre,1752年-1804年9月20日),法国自然科学家,鉴别定义了约25种鱼类。
  • 文化剥夺文化剥夺(英语:Cultural Deprivation)是指某一族群可能是因为教育或价值观,而缺少能够在教育制度中取得成功的适当语言和知识,导致其被局限于低认知可塑性状态的过程。文化剥夺理