不是很清楚字节码和机器码的区别,请热心人士指点。
PHP7 Source Code => AST => Opcode => Zend Engine
Java Source Code => Java Compiler => Bytecode => JVM(JIT) => Native Code
C# Source Code => C# Compiler => MSIL Code => CLR(JIT) => Native Code
字节码 本质上允许语言脱离对具体机器指令的依赖,是对机器码的抽象。所以更抽象
我修改一下
应该是这样理解
提出一个问题 然后用程序解决这个问题
这里 程序应该是更 具象的 问题 更抽象
所以 LZ的问题就明白了
首先所谓抽象:抽出象的部分,而字节码是经过编译器即javac编译源代码得来,而使用的时候是:每次运行都会解释,所以字节码类似一个类,而机器码是实例,这是我的解释。
所有的抽象是指更高一级。.class文件这种字节码显然想对 与 010101那种机器码更加高级,也就是说要抽象一些。
引用quora, 这个够形象不?
JAVA
|
字节码
|
机器码
|
硬件-CPU
看不懂英文,我可以给你翻译一下。