jvm - 不同编程语言的字节码差异

标签 jvm bytecode jit opcode pyc

我知道几种解释性编程语言(PHP、Python、Java、Smalltalk)正在使用字节码作为执行代码的中间步骤。

不同语言的解释器生成的字节码形式之间是否存在差异,就像不同机器的汇编操作码之间的差异一样?

此外,可以肯定的是,字节码只能在解释语言中使用,对吗?

最佳答案

字节码是虚拟机执行的指令的通用词,就像机器语言是真实处理器执行的指令的通用术语一样。正如有许多不同的机器指令集一样,也有许多不同的字节码指令集。有些(例如 Java 字节码)是平台的记录部分。根据定义,所有 Java 虚拟机都执行完全相同的字节码。其他的只是实现细节,不同版本有所不同。

回答你的最后一个问题:不,这是不正确的。 Java 不是一种解释性语言;它是即时编译的。 C# 类似。字节码可以是许多不同架构的一部分。

关于jvm - 不同编程语言的字节码差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20165566/

相关文章:

java - 为特定方法/类禁用 Java JIT?

java - JVM JIT 诊断工具和优化技巧

c# - C# 是否具有零成本抽象?

java - JVM如何手动使用Native Stack进行JAVA函数调用

jvm - 如何编译perl6程序生成字节码?

java - Java 字节码是否兼容不同版本的 Java?

documentation - LLVM IR 操作码文档

java - 长类型名称会影响性能吗?

java - Heroku JVM 内存配额超出,但数字不相加

java - 为什么 JUnit "Run as->JUnit"和 "Cover as -> Junit"有不同的行为?