Oracle与OpenJDK之间的区别
简介
在本文中,我们将探讨Oracle Java Development Kit和OpenJDK之间的差异并进行比较。
Oracle JDK
Oracle JDK由Oracle公司开发,该公司是Sun许可证,基于Java标准版规范实现。它以二进制产品的形式发布。它支持多种操作系统,如Windows,Linux,Solaris,MacOS等。它支持不同的平台,如Intel 32位和64位架构,ARM架构和SPARC。它完全基于Java编程语言。之后,该许可证宣布将根据GPL(通用公共许可证)许可证发布。Oracle JDK包含许多组件作为库形式的编程工具集合。
我们来看看Java SE的历史:
- JDK Beta - 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的主要版本大约每两年发布一次,直到Java SE 7.从Java SE 6开始花了五年时间,之后又花了三年时间到达Java SE 8。
自Java SE 10以来,我们可以期待每六个月发布一次新版本。但是,并非所有版本都是长期支持(LTS)版本。由于Oracle的发布计划,LTS产品发布仅每三年发布一次。
OpenJDK
OpenJDK是Java SE平台版的开源和免费实现,它是Sun Corporation(现在的Oracle Corporation)于2006年开始的开发结果。它是根据GNU GPL许可证授权的。它最初于2007年发布。它由Oracle Corporation,Red Hat,IBM,Apple Inc.,OpenJDK和Java Community等开发。它是使用C ++和Java编程语言编写的。它支持不同的操作系统,如FreeBSD,Linux,Microsoft Windows,Mac OS X. OpenJDK是Java SE Platform Edition的官方参考实现。
现在让我们看看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与OpenJDK之间的比较(信息图表)
Oracle与OpenJDK之间的主要区别
Oracle与OpenJDK都是市场上的热门选择; 让我们讨论一下OracleJDK与OpenJDK之间的一些主要差异:
Oracle JDK版本将每三年发布一次,而OpenJDK版本每三个月发布一次。
Oracle JDK将更多地关注稳定性,它重视更多的企业级用户,而OpenJDK经常发布以支持其他性能,这可能会导致不稳定。
Oracle JDK支持长期发布的更改,而Open JDK仅支持计划和完成下一个发行版。
Oracle JDK根据二进制代码许可协议获得许可,而OpenJDK根据GPL v2许可获得许可。 使用Oracle平台时会产生一些许可影响。如Oracle 宣布的那样,在没有商业许可的情况下,在2019年1月之后发布的Oracle Java SE 8的公开更新将无法用于商业,商业或生产用途。但是,OpenJDK是完全开源的,可以自由使用。
Oracle JDK的构建过程基于OpenJDK,因此OpenJDK与Oracle JDK之间没有技术差异。
顶级公司正在使用Oracle JDK,例如Android Studio,Minecraft和IntelliJ IDEA开发工具,其中Open JDK不太受欢迎。
Oracle JDK具有Flight Recorder,Java Mission Control和Application Class-Data Sharing功能,Open JDK具有Font Renderer功能,这是OpenJDK与Oracle JDK之间的显着差异。
Oracle JDK具有良好的GC选项和更好的渲染器,而OpenJDK具有更少的GC选项,并且由于其包含自己的渲染器的分布,因此具有较慢的图形渲染器选项。
在响应性和JVM性能方面,Oracle JDK与OpenJDK相比提供了更好的性能。
与OpenJDK相比,Oracle JDK的开源社区较少,OpenJDK社区用户的表现优于Oracle JDK发布的功能,以提高性能。
如果使用Oracle JDK会产生许可影响,而OpenJDK没有这样的问题,并且可以以任何方式使用,以满足完全开源和免费使用。
Oracle JDK在运行JDK时不会产生任何问题,而OpenJDK在为某些用户运行JDK时会产生一些问题。
根据使用方的使用和许可协议,现有应用程序可以从Oracle JDK迁移到Open JDK,反之亦然。
Oracle JDK将从其10.0.X版本将收费,用户必须付费或必须依赖OpenJDK才能使用其免费版本。
Oracle JDK不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来获取最新版本。
Oracle JDK以前的1.0版以前的版本是由Sun开发的,后来被Oracle收购并为其他版本维护,而OpenJDK最初只基于Java SDK或JDK版本7。
Oracle JDK发布时大多数功能都是开源的,其中一些功能免于开源,并且根据Sun的许可授权,而OpenJDK发布了所有功能,如开源和免费。
Oracle JDK完全由Oracle公司开发,而Open JDK项目由IBM,Apple,SAP AG,Redhat等顶级公司加入和合作。
Oracle与OpenJDK比较表
以下是Oracle与OpenJDK之间最重要的比较:
Oracle与OpenJDK之间比较 | Oracle JDK | OpenJDK |
---|---|---|
执照 | 它是根据GPL(通用公共许可证)许可证授权的 | 它是根据GNU GPL(通用公共许可证)许可证授权的 |
发展 | 由Sun Microsystems Inc.开发 | 由Oracle,OpenJDK和Java社区开发 |
性能 | 根据Sun JDK的开发和实现提供性能 | 提供由Oracle JDK之上的一些供应商开发的高性能 |
可扩展性 | 根据Sun的实施 | 可以使用其他库或Oracle JDK进行改进 |
费用 | Sun的官方执行许可证 | 开源和免费实施可供免费使用 |
速度 | 由Sun Microsystems Inc.开发 | 第三方供应商将通过进行一些调整来提高JVM的速度 |
操作系统 | 支持Windows,Linux,Solaris,MacOS | FreeBSD,Linux,Microsoft Windows,Mac OS X. |
便于使用 | 可以与任何应用程序开发一起使用 | 可以与任何应用程序开发和其他开源工具一起使用,以提高开源实现模型的性能。 |
结论
Oracle JDK可用于开发Java Web应用程序,独立应用程序以及许多其他图形用户界面以及其他开发工具。Oracle JDK执行的所有操作或任务也可以由OpenJDK执行,但只有Oracle与OpenJDK之间的区别在于Open JDK在现有Oracle JDK之上的许可和其他工具集成和实现。使用OpenJDK的优点是可以根据应用程序的要求修改性能,可伸缩性和实现,以根据需要调整Java虚拟机。
OpenJDK的优势更多,Oracle JDK的使用在Oracle JDK实现中使用的标准方面也有一些好处,这将确保应用程序稳定和良好维护。
相关资源:openjdk与Oraclejdk的区别_openjdk-其它代码类资源-CSDN文库
来源:Oracle与OpenJDK之间的区别_weixin_33939843的博客-CSDN博客
Oracle与OpenJDK之间的区别相关推荐
- Oracle JDK和 OpenJDK 之间的区别
1. 简介 在本文中,我们将探讨Oracle Java Development Kit和OpenJDK之间的差异.我们先快速浏览一下,然后进行比较.之后,我们将看到其他JDK实现的列表. 2. Ora ...
- oracle类型sql转为mysql_Oracle和MySql之间SQL区别(等效转换以及需要注意的问题)...
>本篇博文是Oracle和MySQL之间的等效SQL转换和不同,目前市面上没有转换两种SQL的工具,小编觉得以后也不一定会有,于是在业余时间整理了一下,如果有什么错误之处请留言告知,小编也是刚 ...
- JVM,JDK,JRE和OpenJDK有什么区别?
本文翻译自:What is the difference between JVM, JDK, JRE & OpenJDK? What is the difference between JVM ...
- oracle 和mysql有什么区别_mysql和oracle的区别有哪些
原标题:mysql和oracle的区别有哪些 MySQL和Oracle都是流行的关系数据库管理系统(RDBMS),在世界各地广泛使用:大多数数据库以类似的方式工作,但MySQL和Oracle的这里和那 ...
- oracle jdk什么意思,Oracle JDK和OpenJDK之间的区别是什么?
Oracle JDK和OpenJDK之间有什么区别?下面本篇文章就来给大家介绍一下Oracle JDK和OpenJDK之间的区别是什么,希望对大家有所帮助.[视频教程推荐:Java教程] Oracle ...
- Oracle中用户和架构之间的区别?
本文翻译自:Difference between a user and a schema in Oracle? Oracle中的用户和架构有什么区别? #1楼 参考:https://stackoom. ...
- oracle gbk ebcdic,文件编码 ANSI、GBK、GB2312、MS936、MS932、SJIS、Windows-31 、EUC-JP 、EBCDIC 等等之间的区别与联系...
■前言 暂且不谈 UTF-8,Unicode (UTF-8只是Unicode的一种实现方式) https://blog.csdn.net/sxzlc/article/details/106084402 ...
- oracle nls_nchar_characterset,Oracle的NLS_NCHAR_CHARACTERSET和NLS_CHARACTERSET之间的区别
我在这里有一个简单的问题,我想知道oracle中NLS_NCHAR_CHARACTERSET和NLS_CHARACTERSET设置之间的区别? 根据我的理解,NLS_NCHAR_CHARACTERSE ...
- oracle join详解,inner join和left join之间的区别详解
前言 关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了. 需求是从数据库查数据,在 ...
最新文章
- 拉力赛 (Standard IO)
- 如果还不懂如何使用 Consumer 接口,就来看这篇!
- SAP MM模块-实施顾问岗位-面试手册-面试准备
- leetcode —— 235. 二叉搜索树的最近公共祖先
- 分布式缓存Redis应用场景解析
- linux select 服务器,Linux下用select()实现异步的Echo服务器
- 【Codeforces549F】Yura and Developers [单调栈][二分]
- Linux的运行级别和chkconfig用法
- java日期互转:LocalDateTime、String、Instant、Date
- 视频直播的购物平台,网站,app
- 市场、运营、销售什么区别?
- 1-4 CAD 圆弧(arc)
- 超全面的前端切图技巧,读这篇就够了
- Quartus II使用说明(Verilog HDL二选一数据选择器 )
- python -m详解
- 玩游戏提升计算机内存不足,电脑内存不足怎么办?详细解决方案.
- 福克斯车钥匙遥控失灵解决办法
- echarts引入地图不成功(使用echarts遇到的坑)
- pdf文件转图片(java实现)
- 计算机毕业设计Node.js+Vue综合型体育场馆管理系统(程序+源码+LW+部署)
热门文章
- c语言opencv所用库函数,Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略...
- 「Ubuntu」Ubuntu中的python终端配置(修改终端默认python配置,软连接,不同版本python环境配置)
- listener.ora--sqlnet.ora--tnsnames.ora的关系以及手工配置举例(转载:http://blog.chinaunix.net/uid-83572-id-5510.ht)
- 4种方法让SpringMVC接收多个对象(转:http://blog.csdn.net/lutinghuan/article/details/46820023)
- 5.QT中关于HTTPClient相关的操作,Json数据传输
- boost标准库开发环境搭建boost标准库环境搭建以及简单案例介绍
- 操作多个表_4_查询不再另外一个表里的记录
- bat怎么获取前一天 的日期_bat脚本 得到前一天的日期
- [计算机视觉]人脸应用:人脸检测、人脸对比、五官检测、眨眼检测、活体检测、疲劳检测
- Mask-RCNN中的ROIAlign, ROIPooling及ROIWarp对比