java - What is the difference between JVM, JDK, JRE & OpenJDK? - Stack Overflow


https://blogs.oracle.com/java/post/oracle-jdk-releases-for-java-11-and-later

oracle jdk开始是基于open jdk7进行构建的

区别

java - Differences between Oracle JDK and OpenJDK - Stack Overflow

1. 发布时间表

Oracle 将每三年发布一次,OpenJDK 每六个月发布一次

Oracle 为其版本提供长期支持(bug fix)。另一方面,OpenJDK 仅支持对一个版本的更改,直到下一个版本发布。

2. 许可证

Oracle JDK 是根据 Oracle 二进制代码许可协议获得许可的,而OpenJDK 具有 GNU 通用公共许可证 (GNU GPL) 第 2 版

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

OpenJDK 是完全开源的,可以自由使用。

3. 表现

两者之间没有真正的技术差异,因为 Oracle JDK 的构建过程基于 OpenJDK 的构建过程

在性能方面,Oracle 的响应能力和 JVM 性能要好得多。由于它对企业客户的重要性,它更加关注稳定性。

相比之下,OpenJDK 更频繁地发布版本。相对不够稳定。

4. 特征

Oracle 产品具有 Flight Recorder、Java Mission Control 和 Application Class-Data Sharing 特性,而OpenJDK 具有字体渲染器特性

Oracle 有更多的垃圾收集选项和更好的渲染器。

5. 发展与普及

Oracle JDK 完全由 Oracle Corporation 开发,OpenJDK 由 Oracle、OpenJDK 和 Java Community 开发。但是,Red Hat、Azul Systems、IBM、Apple Inc. 和 SAP AG 等一流公司也积极参与了它的开发。

主要的 Linux 发行版(Fedora、Ubuntu、Red Hat Enterprise Linux)都是提供 OpenJDK 作为默认的 Java SE 实现。

自 Java 11 以来的变化

从 Java 11 开始有一些重要的变化。

传统的“商业功能”,例如 Flight Recorder、Java Mission Control 和 Application Class-Data Sharing,以及 Z Garbage Collector,现在都可以在 OpenJDK 中使用。

因此,从 Java 11 开始,Oracle JDK 和 OpenJDK 构建基本相同

让我们看看主要的区别:

  • Oracle 的 Java 11 工具包在使用-XX:+UnlockCommercialFeatures选项时会发出警告,而在 OpenJDK 构建中,此选项会导致错误
  • Oracle JDK 提供了一种配置来向“高级管理控制台”工具提供使用日志数据
  • Oracle 一直要求第三方加密提供者必须由已知证书签名,而 OpenJDK 中的加密框架具有开放的加密接口,这意味着可以使用哪些提供者没有限制
  • Oracle JDK 11 将继续包括安装程序、品牌和 JRE 打包,而 OpenJDK 构建目前以ziptar.gz文件的形式提供
  • 由于Oracle 版本中存在一些附加模块,javac –release命令对 Java 9 和 Java 10 目标的行为不同
  • java –versionjava -fullversion命令的输出将 Oracle 的构建与 OpenJDK 的构建区分开来

Oracle JDK 和 OpenJDK 如何保持同步?

对于如此庞大的代码库,它绝对应该是一个复杂的过程。所有开发和错误修复都在 OpenJDK 中进行,然后传播到 Oracle JDK。与一般修复不同,安全修复发生在没有公共代码审查的私有林中,然后它们被推送到 Oracle JDK,然后被推送到 OpenJDK。

正如 StackExchange 中 JClarity 的 Martijn Verburg 所引用的那样,“一些供应商也选择不将他们的更改推回 OpenJDK。例如,谷歌和 Twitter 都修改了他们内部使用的 OpenJDK 版本,其中包含错误修复和尚未回到主要 OpenJDK 项目的功能。”

Oracle jdk vs Open jdk相关推荐

  1. linux上传oracle压缩包,Linux中从oracle官网下载jdk文件不是标准的gzip格式文件问题...

    http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-lin ...

  2. Oracle免登录下载JDK(实测有效)

    如何下载jdk 如何免登录下载JDK STEP 1:打开Oracle官网下载 STEP 2:选择自己所需的对应版本 STEP 3:点击下载 小白特供(本人思考过程) 暴躁老哥直达版 如何免登录下载JD ...

  3. 【问题解决】关于Oracle官网下载JDK需要登录Oracle账户问题

    问题描述 当我们在Oracle官网上下载JDK时,(JDK下载地址)系统会提示需要登录Oracle账户.对于没有Oracle账户的人来说,注册账户太繁琐. 问题解决 此处推荐一个神奇的网站,里面提供部 ...

  4. Oracle官网所有JDK及JRE历史版本下载地址

    Oracle官网所有JDK及JRE历史版本下载地址 访问 https://www.oracle.com/java/technologies/javase/javase8-archive-downloa ...

  5. JDK 7和JDK 8中大行读取速度较慢的原因

    我之前发布了博客文章"使用JDK 7和JDK 8读取慢速行",并且在该问题上有一些有用的评论来描述该问题. 这篇文章提供了更多解释,说明为何该文章中演示的文件读取(并由Ant的Li ...

  6. 如何安装JDK 15(其他JDK同样适用)

    JDK 15 安装教程 作者:龙龙 安装环境:Windows 10 专业版 X64 版本:2002 1.我们打开百度,搜索Java,进入Oracle官网: 找到Java SE 15,找到Oracle ...

  7. 什么是JDK?Java JDK 下载,安装与环境变量配置注意点。使用记事本编写运行环境配置后的第一个Java程序

    万事开头难.在了解什么是 Java.Java 语言的特点以及学习方法之后,本节将介绍如何搭建编写 Java 程序所需要的开发环境--JDK(Java Development Kit). JDK 是一种 ...

  8. The substring() Method in JDK 6 and JDK 7

    2019独角兽企业重金招聘Python工程师标准>>> 1. What substring() does? The substring(int beginIndex, int end ...

  9. 在JDK 6和JDK 7的substring()方法的区别?

    原文链接:https://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/ 在JDK 6和JDK 7中subs ...

  10. The substring() Method in JDK 6 and JDK 7 (jdk6中的substring()会造成内存泄漏)

    参考:http://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/ The substring(int be ...

最新文章

  1. dva 中使用绝对路径/别名的方法
  2. 浅谈RxJava与2.0的新特性
  3. 【LeetCode】198.打家劫舍
  4. 【干货合辑】+你有什么独家数据库优化技巧?
  5. tensorflow tf.train.Saver.restore() (用于下次训练时恢复模型)
  6. Spring事务的隔离级别
  7. surging+EFCore 服务实现入门
  8. HihoCoder - Floyd算法
  9. CCNA学习指南第六章
  10. docker搭建MySQL集群
  11. 让手机可以边打电话边上网
  12. 如何在word 里插入代码?
  13. Barrett And Montgomery of Polynomials
  14. 基于matlab的语音采集及处理
  15. asp站点服务器,ASP网站搭建 ASP服务器搭建 教程
  16. 新冠无情人间有情,欣隆农业保民生共抗疫——慰问抗疫一线及爱老助困送欣隆酵醒鸡蛋蔬菜进社区公益行动
  17. [matlab]利用cftool进行曲线拟合
  18. Qt数据可视化(QBoxPlotSeries盒须图)
  19. Bootstrap3 缩略图( thumbnail )
  20. 关于反函数的二阶导数

热门文章

  1. 【Hadoop技术篇】hadoop的使用
  2. 成就DBA的职业生涯
  3. 如何将OAK相机当作可移除背景的网络摄像头?
  4. python金融大数据分析 培训
  5. 中国电磁流量计市场调研与投资预测报告(2022版)
  6. Python——蟒蛇图形绘制(turtle绘图体系)
  7. 软件工程实训有必要吗_软件工程实验(四个实验)
  8. WinPE中工具ImageX工具用法
  9. python launcher卸载后蓝屏_卸载游戏后电脑蓝屏,想问怎么解决?
  10. 数据可视化就应该这么做!