当使用相同的JDK(即相同的javac
可执行文件)时,生成的类文件是否总是相同的?是否会因操作系统或硬件而有所不同?除了JDK版本之外,还有其他因素导致差异吗?是否有任何编译器选项可以避免差异?只是理论上可能存在差异,还是Oraclejavac
实际上为相同的输入和编译器选项生成不同的类文件?
更新1我对生成感兴趣,即编译器输出,而不是类文件是否可以在各种平台上运行。
更新 2通过“相同的 JDK”,我也指相同的javac
可执行文件。
更新 3 Oracle 编译器的理论差异和实际差异之间的区别。
[编辑,添加释义问题]
“相同的 javac 可执行文件在不同平台上运行时会产生不同字节码的情况是什么?”