在本文中,咱们将探讨Oracle Java Development Kit和OpenJDK之间的差别并进行比较。html
Oracle JDK由Oracle公司开发,该公司是Sun许可证,基于Java标准版规范实现。它以二进制产品的形式发布。它支持多种操做系统,如Windows,Linux,Solaris,MacOS等。它支持不一样的平台,如Intel 32位和64位架构,ARM架构和SPARC。它彻底基于Java编程语言。以后,该许可证宣布将根据GPL(通用公共许可证)许可证发布。Oracle JDK包含许多组件做为库形式的编程工具集合。java
咱们来看看Java SE的历史:编程
注意:再也不支持斜体版本。架构
咱们能够看到Java SE的主要版本大约每两年发布一次,直到Java SE 7.从Java SE 6开始花了五年时间,以后又花了三年时间到达Java SE 8。oracle
自Java SE 10以来,咱们能够期待每六个月发布一次新版本。可是,并不是全部版本都是长期支持(LTS)版本。因为Oracle的发布计划,LTS产品发布仅每三年发布一次。jsp
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版本:工具
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 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实现中使用的标准方面也有一些好处,这将确保应用程序稳定和良好维护。