当前位置: 首页 > 知识库问答 >
问题:

Oracle JDK和OpenJDK在技术上的主要区别是什么?[副本]

闾丘博
2023-03-14

我已经使用OpenJDK很久了,最初是用于它没有问题的小项目。但是自从我开始把它当作大玩具来玩,我开始注意到随机的/未知的致命错误和崩溃(使用H.264编解码器等),在此之前,系统崩溃+由OpenJDK引起的致命错误是一场噩梦。

在对OpenJDK感到完全沮丧和厌倦之后,我最终决定切换到Oracle JDK7。从那时起,我的致命错误/崩溃就消失了。我仍然在做跟踪看看它是否发生,但我从来没有得到那些系统崩溃。

现在我在想,如果OpenJDK只是一个许可证问题,为什么用它就不可能实现稳定性呢?

为什么OpenJDK在其稳定版本中保持bug存活,但声称它是Oracle JDK的克隆(实际上并非如此),那么OpenJDK与Oracle JDK在技术上的真正区别是什么呢?(仅提供快速功能?还是专注于稳定性/可靠性?)

共有1个答案

贾烨
2023-03-14

技术差异是每一个目标的结果(OpenJDK是向社区开放的参考实现,而Oracle是商业实现)

它们都具有Java API中“几乎”相同的类代码;但虚拟机本身的代码实际上是不同的,而且当涉及库时,OpenJDK倾向于使用开放式库,而Oracle倾向于使用封闭式库;例如,字体库。

 类似资料:
  • 问题内容: 我使用OpenJDK已有很长时间了,最​​初是用于没有问题的小型项目。但是,由于我开始使用它处理大型玩具,所以我开始注意到随机/未知的致命错误和崩溃(使用H.264编解码器等),直到那时,系统崩溃和致命错误才成为噩梦由OpenJDK引起。 在对OpenJDK感到完全沮丧和厌倦之后,我最终决定切换到Oracle JDK7。从那以后,我的致命错误/崩溃就消失了。我仍在进行跟踪以查看是否发生

  • 问题内容: 我使用OpenJDK已有很长时间了,最​​初是用于没有问题的小型项目。但是,由于我开始使用它处理大型玩具,所以我开始注意到随机的/未知的致命错误和崩溃(使用H.264编解码器等),直到那时,系统崩溃和致命错误才成为噩梦由OpenJDK引起。 在对OpenJDK感到完全沮丧和厌倦之后,我最终决定切换到OracleJDK7。从那以后,我的致命错误/崩溃就消失了。我仍在进行跟踪以查看是否发生

  • Flink被比作Spark,在我看来,这是一个错误的比较,因为它将窗口事件处理系统与微批处理进行了比较;同样地,对我来说,将Flink与Samza进行比较也没有那么大的意义。在这两种情况下,它比较了实时事件处理策略和批处理事件处理策略,即使在Samza的情况下“规模”较小。但我想知道Flink与Storm的比较如何,它在概念上似乎更相似。 我发现这张(幻灯片#4)记录了Flink的“可调延迟”这一

  • 本文向大家介绍Kafka和Flume之间的主要区别是什么?相关面试题,主要包含被问及Kafka和Flume之间的主要区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:Kafka和Flume之间的主要区别是: 工具类型 Apache Kafka——Kafka是面向多个生产商和消费者的通用工具。 Apache Flume——Flume被认为是特定应用程序的专用工具。 复制功能 Apache

  • 问题内容: 网上似乎充满了Velocity和FreeMarker之间的比较,并且它们似乎相当等效。但是,StringTemplate和FreeMarker之间似乎几乎没有比较! 那么,StringTemplate和FreeMarker之间的主要区别是什么? 我对它们的用法是仅生成HTML页面。在这两种方法中,我曾期望FreeMarker更合适,功能更强大,因为这似乎是更常见的一种- 但快速浏览一下

  • 问题内容: 创建表: 结果: 请让我知道Varchar2和char有什么区别?我们什么时候都使用? 问题答案: 显示差异的简单示例: CHAR对于字符长度始终固定的表达式很有用,例如美国各州的邮政编码,例如CA,NY,FL,TX