美文网首页
机器码和字节码

机器码和字节码

作者: 区块文 | 来源:发表于2018-08-21 16:19 被阅读0次

什么是机器码

机器码

机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据

通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码。

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。

机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。

8086到Pentium的机器语言指令长度可以从1字节到13字节。

尽管机器语言好像是很复杂的,然而它是有规律的。

存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。

总结:机器码是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂,也比较难编写,一般从业人员接触不到。

什么是字节码

字节码

字节码(Bytecode)是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。

通常情况下它是已经经过编译,但与特定机器码无关。字节码通常不像源码一样可以让人阅读,而是编码后的数值常量、引用、指令等构成的序列。

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

字节码在运行时通过JVM(JAVA虚拟机)做一次转换生成机器指令,因此能够更好的跨平台运行。

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

相关文章

  • 从底层入手,解析字节码增强和Btrace应用

    这篇文章聊下字节码和相关的应用。 1、机器码和字节码 机器码(machine code),学名机器语言指令,有时也...

  • Java和JVM的一些名词

    1.机器码和字节码 机器码 机器码(machine code),学名机器语言指令,有时也被称为原生码(Native...

  • 编译器和解释器

    机器码和字节码 字节码是一种中间状态(中间码)的二进制代码(文件) 机器码也是二进制代码,是电脑CPU直接读取运行...

  • 机器码和字节码

    什么是机器码 机器码 机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Co...

  • opcode cache与JIT的区别

    要说明opcode cache与JIT的区别,得先明白,字节码,又叫中间码与机器码的区别。 机器码(machine...

  • java核心技术-java基础

    通过javac将java源码转化为字节码,通过jvm内嵌的解释器将字节码转换为机器码。

  • 《深入理解JVM虚拟机》 - 运行期优化

    javac生成字节码,字节码可以解释执行,也可以进一步通过JIT编译执行,JIT把字节码变为机器码。 JVM采用解...

  • JVM-003-类文件结构

    代码编译的结果从本地机器码转变为字节码。字节码构成平台无关性的基石实现与厌恶惯性的基础是虚拟机和字节码的存储格式J...

  • Java并发底层实现原理

    Java代码在编译后变成字节码,字节码被类加载器加载到JVM,JVM解析执行字节码,转化为机器码在CPU上执行,J...

  • android 虚拟机

    java:.java文件编译成.class文件的字节码,最终将字节码提供给jvm翻译成机器码。 android:....

网友评论

      本文标题:机器码和字节码

      本文链接:https://www.haomeiwen.com/subject/adsjiftx.html