zoukankan      html  css  js  c++  java
  • 字节码和机器码的区别?

    1.机器码 


    是电脑CPU直接读取运行的机器码,运行速度最快,但是非常晦涩难懂,同时也比较难编写;机器码就是计算机可以直接执行,并且执行速度最快的代码;

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

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


    2.字节码


    字节码是一种中间状态的(中间码)的二进制代码(文件),字节码(Bytecode)是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件

    需要直译器转译后才能成为机器码;字节码通常情况下它是已经经过编译,但与特定机器码无关。

    字节码通常不像源码一样可以让人阅读,而是编码后的数值常量,引用,指令等构成的序列。

    字节码与特定的硬件环境无关;字节码的实现方式是通过编译器和虚拟机器。编译器将源码编译成字节码

    特定平台上的虚拟机器将字节码转译为可以直接执行的指令。字节码的典型应用为Java bytecode

    3.对比字节码与机器码


    机器码就是说计算机能读懂的代码,简单点说就是给计算机执行的二进制代码.
    字节码,是JAVA语言专有的,它是让JVM来执行的二进制代码
    虽然都是二进制代码,但是由于执行它的环境不一样,所以它们存在一些指令集上的区别

  • 相关阅读:
    CSS 文档流布局以及盒子模型
    CSS样式继承和样式权重
    CSS选择器餐厅练习
    node.js读写json文件
    C#单例模式的2种实现方式,Lazy模式和双检锁模式
    The Entity Framework provider type 'MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.18.0,
    mysql主从配置
    nginx 限制ip并发数,nginx限制IP连接数的范例参考
    certbot 调用cloudflare api申请证书
    proxy_pass url 反向代理的坑
  • 原文地址:https://www.cnblogs.com/Rivend/p/12044106.html
Copyright © 2011-2022 走看看