java - Java 字节码中的平台独立性

我有时想知道为什么 Java 被称为平台无关语言?

我找不到以下几点的正确解释:

  1. Windows/Linux/Mac OS 的 JVM 是否相同?
  2. 在上述环境中,同一个类生成的字节码是否相同?

如果以上问题的答案是否定的,那么平台独立性是如何实现的。

请帮助我学习这个基本概念。

最佳答案

Is the JVM same for Windows/Linux/Mac OS?

完全没有。编译器在所有平台上都是相同的。但是,因为它是一个 executable file ,文件本身会有所不同,即在 Windows 上,它将是 .exe,在 Linux 上,它将是 Linux 可执行文件等。

Are the bytecode generated same for a same Class in the above environments?

是的。这就是为什么 Java 是 COMPILE ONCE 的原因。随处运行。

开始之前please read this doc by oracle

https://stackoverflow.com/questions/17691261/

相关文章:

proxy - 无法从远程机器访问鱿鱼代理

unicode - 如何处理 SDL 中的大写击键?

entity-framework - MVC4 + EntityFramework : metada

sql-server - SQL Server 2008 的 FreeTextTable 性能不佳

spring - 如何为持久性 Quartz 作业重命名作业类?

python - 永远不会创建文件

ruby-on-rails - 在超时注销之前向用户显示一条消息

css - 使用 CSS 的 SVG 路径填充颜色

ruby-on-rails - 如何在到达 Rails 应用程序之前处理从 Rack 生成的异常

scikit-learn - 在传递到 'roc_curve' 之前如何处理从 'auc' 返回的