Java字节码如何处理多个平台?

Nat*_*Fox 1 java bytecode

例如,假设您有一个只打开窗口的java程序.这显然会导致不同操作系统的不同汇编代码(在Windows上最终必须调用CreateWindowEx).那么Java字节码(或任何其他类似语言)如何表示像这样的特定平台呢?

Bac*_*ash 6

JVM是依赖于操作系统的,而字节代码则不是.

这意味着字节码是一种"通用"语言,JVM将根据其运行的系统来解释最终执行.


UPDATE

正如Chris Jester-Young所说,我的回答并不完全正确:

  1. 100%纯Java程序的字节码确实与平台无关.当然,这些程序调用的底层Java平台类不是.
  2. 大多数时候,JVM也会进行JIT编译,而不仅仅是解释.(你可以启用纯解释模式,但它会很慢!)

  • 不严格正确.1. 100%纯Java程序的字节码确实与平台无关.这些程序调用的_underlying Java平台类当然不是.2.大多数情况下,JVM也会进行JIT编译,而不仅仅是解释.(你可以启用纯解释模式,但它会很慢!) (2认同)