如题:JAVA是基于栈的指令集架构的,所有指令都是在栈上完成的。JAVA代码被编译后,变成字节码,字节码是按照java虚拟机规范生成的。
但是程序最终执行都是依赖物理机器的吧。所有字节码虽然都是解释执行的,解释出来的都是机器码吧?跟C代码编译的依赖操作系统直接运行的机器码,应该是一致的吧?还是不一致呢?
从<<hotspot实战>>中对ineg指令的解释,JVM生成的机器码与x86机器生成的机器码是一致的。我的理解是,只不过JVM里用到的机器码都在JVM的codelet里写死,并缓存起来了。