我正在读关于instruction set
in wiki http://en.wikipedia.org/wiki/Instruction_set我看到了这一段:
一些支持字节码作为 ISA 的虚拟机,例如
Smalltalk、Java 虚拟机和 Microsoft 公共语言
运行时,通过翻译常用的字节码来实现
到本机机器代码的代码路径。此外,这些虚拟
机器通过解释执行不常用的代码路径
(请参阅:即时编译)。 Transmeta 实施了 x86
以这种方式在 VLIW 处理器上设置指令集。
这究竟意味着什么?
是个bytecodes
are ISA
for JVM
and JVM
反过来支持ISA
处理器。
是的,正如你所猜测的那样。 JVM/JRE 使用 Java 字节码作为其指令集,并且每个 JVM 都需要在本机/本地硬件(因此也需要本地指令集)上进行编译和运行。我认为维基百科上的这张图很好地说明了这一点:
尽管 JVM 本身的 Java 字节码定义和解释保持不变,但 JRE/JVM 需要针对其运行的特定硬件进行编译。正如您所指出的,Java 字节码可以被视为 Java 源代码和本地机器/二进制代码之间的一种抽象层。它确实允许将典型的 Java 程序员与需要了解任何特定于机器的内容之间的关注点分开,因为几乎所有这些都是由 JVM/JRE 处理的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)