实际上,这个问题有点宽泛。我知道 javac 将 java 文件编译成字节码,一个类文件。所以,类文件应该包含 jvm 指令和所有这些。另一方面,查看这些指令的唯一方法是使用 javap -c 反编译类文件。但它不是反编译,对吧?因为如果是反编译,就会产生java文件。所以,我的猜测是 javac 编译 java 文件两次(这实际上不是真的,但为了简单起见,我们假设),首先是 jvm 指令,然后是字节码,所以 javap -c 从字节码反编译为 jvm 指令。Jvm 应该理解字节码,因此它不能理解指令。我在这里有点困惑。有人可以解释这里发生了什么吗?
问问题
877 次