使用非Sun JRE/JDK的动机是什么?

Dav*_*ave 5 java

这个问题让我思考,假设Sun JDK可用,我为什么还要使用其他东西?使用不同的编译器有一个很好的技术原因吗?

Dar*_*ron 1

很多人回答的问题与您提出的问题不同。用于编译代码的 JDK 与用于运行代码的 JVM 不同。

由于大多数优化都发生 JIT,因此编译器生成的代码的质量并不是很重要。这使得使用特定 JDK 的原因如下:

  1. 编译性能。IBM Jikes 曾经是一个非常快的编译器。
  2. 错误报告。IDE 中内置的编译器通常具有出色的错误报告功能。
  3. 符合标准。例如,IBM 有一次在 StringBuilder 中提供了一种额外的重载方法。如果在编译时选择了该重载,那么您的代码将在 Sun JVM 上运行时失败。