Oracle JDK 和 OpenJDK 的区别

0    174    3

Tags:

👉 本文共约2111个字,系统预计阅读时间或需8分钟。

简介

Java 是目前最流行和使用最广泛的编程语言之一。

Java JDK(Java Development Kit)有两种,一种是Oracle JDK 与 OpenJDK。

什么是 JDK?

JDK 代表 Java 开发工具包(Java Development Kit)。它是一个软件开发平台,特别适用于各种 Java 应用程序和Applet 的开发。

JDK 的某些组件包括Java 运行时环境(JRE)、解释器/加载器 (Java)、编译器 (javac)、归档器 (jar)、文档生成器 (Javadoc) 以及 Java 开发所需的其它工具。

什么是 Oracle JDK?

Oracle Java JDK 已经是 Oracle Corporation 收购后的产品,之前是由 Sun Microsystems 开发。它是一套计算机软件和规范,为开发各种应用软件提供了底层虚拟机系统。

它在嵌入式设备、手机、企业服务器、超级计算机等各种平台中找到了实现。但是,Oracle 自己维护这两个平台。

我们来看看 Java SE 的历史:

  • JDK 测试版 – 1995
  • JDK 1.0 – 1996 年 1 月
  • JDK 1.1 – 1997 年 2 月
  • J2SE 1.2 – 1998 年 12 月
  • J2SE 1.3 – 2000 年 5 月
  • J2SE 1.4 – 2002 年 2 月
  • J2SE 5.0 – 2004 年 9 月
  • Java SE 6 – 2006 年 12 月
  • Java SE 7 – 2011 年 7 月
  • Java SE 8 (LTS) – 2014 年 3 月
  • Java SE 9 – 2017 年 9 月
  • Java SE 10 (18.3) – 2018 年 3 月
  • Java SE 11 (18.9 LTS) – 2018 年 9 月
  • Java SE 12 (19.3) – 2019 年 3 月

请注意:斜体是已经不再支持的版本。

在 Java SE 7 之前,Java SE 的主要版本大约每两年发布一次。从 Java SE 6 迁移到 Java SE 6 花了五年时间,之后又花了三年时间才到达 Java SE 8。

从 Java SE 10 开始,人们开始期待每六个月发布一次新版本。但是并非所有版本都是长期支持 (LTS) 版本。由于 Oracle 的发布计划调整,LTS 产品的发布将仅每三年发布一次。

Java SE 11 是最新的 LTS 版本,Java SE 8 在 2020 年 12 月之前仍能获得免费的公开更新,用于非商业用途。

这个开发工具包在2010年甲骨文收购Sun Microsystems后才得了现在的名字。在此之前,它的名字是SUN JDK,它是Java编程语言的官方实现版本。

什么是 OpenJDK?

OpenJDK 是一个免费且开放的 Java 平台。它是由 sun Microsystems 在 2006 年发起的一个项目开发的。Oracle 在后来进一步赞助了它。Open JDK 项目附带的一些组件是 Java 类库、Java 编译器、Java 运行时环境和 Java 虚拟机。

让我们来看看 OpenJDK 版本:

  • OpenJDK 6 ——基于 JDK 7,但经过修改以提供 Java 6 的开源版本
  • OpenJDK 7 ——2011 年 7 月 28 日
  • OpenJDK 7u ——该项目开发 Java Development Kit 7 的更新
  • OpenJDK 8 ——2014 年 3 月 18 日
  • OpenJDK 8u ——该项目开发 Java Development Kit 8 的更新
  • OpenJDK 9 ——2017 年 9 月 21 日
  • JDK 项目发布 2018 年 3 月 10 日至 20 日
  • JDK 项目发布 2018 年 9 月 11 日至 25 日
  • JDK 项目第 12 版 -稳定版阶段

Oracle JDK 与 OpenJDK

OracleJDK 和 OpenJDK 之间的一些主要区别如下:

  1. 发布周期

Open Java 每六个月发布一次,而 Oracle java 每三年发布一次。用户能够获得 oracle 对其版本的长期支持。而Open JDK 为任何版本提供更改,直到下一个版本发布。

  1. 许可证

Oracle JDK 依据 Oracle 二进制代码许可协议许可证,而OpenJDK 使用 GNU 通用公共许可证 (GNU GPL) 第 2 版,但有一个链接例外

使用 Oracle 平台时存在一些许可证问题。正如 Oracle宣布的那样,如果没有商业许可,2019 年 1 月之后发布的 Oracle Java SE 8 的公共更新将无法用于商业或生产用途。而OpenJDK 是完全开源的,可以自由使用。

  1. 整体输出

这两个 Java 平台没有真正的技术差异,因为 Oracle JDK 的构建过程是基于 OpenJDK 的。就平台的整体性能而言,Oracle Java 在响应能力和 JVM 性能方面相对优于 OpenJDK。另一方面,OpenJDK 更频繁地发布版本;为此它增加了不稳定性。

规格

Oracle java 具有飞行记录器、Java 任务控制和应用程序类数据共享功能。而 OpenJDK 拥有字体渲染器功能。

与 Oracle Java 相比,OpenJDK 的发布非常频繁。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

Oracle Java 更加注重稳定性,因为它更加重视更多的企业用户。

Oracle Java 拥有出色的 GC 选项以及更好的性能,比如改进的渲染工具,另一方面,OpenJDK 具有较少的 GC 选项和较慢的图形渲染。

OpenJDK 有一个广大用户的开源社区。

下载安装

Oracle JDK:https://www.oracle.com/java/technologies/downloads/

openJDK:

参考

https://mp.weixin.qq.com/s/pXS4YvbJxmF8NJSavotOPQ

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部