java - Oracle JDK 和 OpenJDK 之间的区别

标签 java difference

NOTE: This question is from 2014. As of Java 11 OpenJDK and Oracle JDK are converging.

Oracle 和 OpenJDK 之间有什么重要区别吗?

比如垃圾回收和其他JVM参数一样吗?

两者的 GC 工作方式是否不同?

最佳答案

OpenJDK 和 Oracle JDK 目前都仅由 Oracle 创建和维护。

OpenJDK 和 Oracle JDK 是通过 TCK(Java 技术认证工具包)的相同 Java 规范的实现。

大多数 JDK 供应商都是在 OpenJDK 之上编写的,通过做一些调整 [主要是替换许可的专有部件/替换为仅在特定操作系统上工作的更多高性能项目] 组件而不破坏 TCK 兼容性。

许多供应商实现了 Java 规范并通过了 TCK。例如,IBM J9、Azul Zulu、Azul Zing 和 Oracle JDK。

几乎每个现有的 JDK 都派生自 OpenJDK。

正如许多人所建议的那样,许可是 JDK 之间的一种变化。

从 JDK 11 开始访问长期支持 Oracle JDK/Java SE 现在将需要商业许可证。您现在应该注意您正在安装哪个 JDK,因为没有订阅的 Oracle JDK 可能会停止工作。 source

引用: List of Java virtual machines

关于java - Oracle JDK 和 OpenJDK 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39685615/

相关文章:

java - 创建返回字符串中重复字符的函数

SQL - 两个查询之间的差异

php - 同一张表,按类型最大日期分组,2 行差异

java - JAX-RS、 jackson 和 JodaTime : not working automatic configuration

java - 如何使用另一个线程来停止 NetworkOnMainThreadException?

java - 报告无法在服务器上运行

java - "ABC"和新字符串 ("ABC"之间有什么区别)?

mysql - 如何在mysql中减去两个结果值

java - 如何区分两个自定义树?

java - Android XML 布局错误