字节码和机器码

Posted curedfisher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节码和机器码相关的知识,希望对你有一定的参考价值。

字节码
字节码是一种中间码

字节码通常指的是已经经过编译,但与特定机器码无关,需要直译器转译后才能成为机器码的中间代码。字节码通常不像源码一样可以让人阅读,而是编码后的数值常量、引用、指令等构成的序列。

字节码主要为了实现特定软件运行和软件环境、硬件环境无关。字节码的实现方式是通过编译器和虚拟机器。编译器将源码编译成字节码,特定平台上的虚拟机器将字节码转译为可以直接执行的指令。字节码的典型应用为Java语言。

总结:字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。


机器码
机器码就是计算机可以直接执行,并且执行速度最快的代码。

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码。

机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
8086到Pentium的机器语言指令长度可以从1字节到13字节。
尽管机器语言好像是很复杂的,然而它是有规律的。
存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。
总结:机器码是电脑CPU直接读取运行的机器指令,运行速度最快

以上是关于字节码和机器码的主要内容,如果未能解决你的问题,请参考以下文章

1.JVM基础知识

JVM进阶之路, 不然又要被面试官吊打了

震惊!几道Python 理论面试题,Python面试题No18

震惊!几道Python 理论面试题,Python面试题No18

什么是机器码

虚拟机和无虚拟机 - 堆栈和跟踪