当使用 同一个 JDK(即相同的 javac
可执行文件)时,生成的类文件是否总是相同的?取决于 操作系统或者 硬件会有什么不同吗?除了 JDK 版本,是否还有其他因素导致差异?是否有任何编译器选项来避免差异?这种差异仅仅是理论上的,还是 Oracle 的 javac
实际上为相同的输入和编译器选项生成了不同的类文件?
更新1 我感兴趣的是 一代,即编译器输出,而不是一个类文件是否可以在不同的平台上是 快跑。
更新2 “相同的 JDK”,我指的也是相同的 javac
可执行文件。
更新3 强 > Oracle 编译器中理论差异与实际差异的区分。
[编辑,添加解释问题]
“当同一个 javac 可执行文件在不同的平台上运行时,会产生不同的字节码,这是什么情况?”