字节码(bytecode)和机器代码(machine code)的区别

每台计算机都与一组由该计算机自己识别和执行的指令相关联。指令存储为二进制位模式,即1和0的字符串。因此,任何一台特定的计算机都只能用其微处理器的机器代码语言执行指令。程序可以存储在磁盘上,然后加载到计算机的内存中,然后由CPU逐个提取指令并执行。以前,程序员习惯用处理器的本机机器代码编写程序,但整个过程既耗时又昂贵,机器代码对人类读者毫无用处。...

每台计算机都与一组由该计算机自己识别和执行的指令相关联。指令存储为二进制位模式,即1和0的字符串。因此,任何一台特定的计算机都只能用其微处理器的机器代码语言执行指令。程序可以存储在磁盘上,然后加载到计算机的内存中,然后由CPU逐个提取指令并执行。以前,程序员习惯用处理器的本机机器代码编写程序,但整个过程既耗时又昂贵,机器代码对人类读者毫无用处。

为了克服这些问题,人们发明了汇编语言。在这种情况下,数据可以用十进制数而不是二进制数来表示。但是将汇编语言程序转换成机器代码需要一个程序。这个程序叫做汇编程序。汇编程序使程序具有可读性,编程不易出错,但无法克服可移植性问题。汇编程序中的缺陷导致了高级编程语言的发展,这使得编程更加高效,但它们又不能在计算机上执行。然后使用编译器实现这一目的。为了使同样的编译程序在任何计算机上运行,程序被编译成字节码。

什么是字节码(bytecode)?

字节码是一组经过高度优化的指令,通常被称为虚拟机,由程序执行。它是从源代码编译成低级代码的中间代码,用于软件解释器的高效执行。必须认识到字节码不是硬件处理器使用的机器码。虚拟机将字节码转换成计算机处理器能够理解的特定机器指令。实时编译器可以用来加速字节码的执行。在Java中,字节码是Java虚拟机(JVM)的指令集。JVM是一个提供执行Java程序所需的运行时环境的程序。程序不能运行,除非有一个JVM可用于您将在其上执行的相应硬件和操作系统平台。JVM是字节码的解释器。Java字节码不是特定于平台的,因此它可以提供给任何平台。

什么是机器代码(machine code)?

机器代码是由与特定计算机相关联的本机指令组成的计算机程序。它是计算机的基本语言,由计算机中央处理器(CPU)可以直接理解的二进制或十六进制指令组成的机器语言指令。每个计算机处理器都与一组机器代码指令相关联,它可以理解并执行这些指令。所有的程序在运行之前都必须转换成机器语言。编译器将计算机程序员编写的程序转换为包含0和1的机器代码,然后操作系统以机器代码运行应用程序。它只是存储在最低级别内存中的CPU指令列表。编译器将高级语言如C、C++和java转换为中间语言(如字节码),然后将其解释为机器语言。

字节码和机器码的区别

定义

–字节码是从源代码编译成低级代码的中间代码,设计用于在虚拟机而不是中央处理器(CPU)上运行。它是一组高度优化的指令,可以识别为组成处理器的机器代码或内部计算机CPU的机器代码。另一方面,机器代码是一种由本机指令组成的计算机程序,本机指令由0和1组成,可由计算机的CPU直接执行。

功能

–字节码类似于运行时系统解释的机器代码,以便代码可以在系统上执行。虚拟机将字节码转换成计算机处理器能够理解的特定机器指令。字节码的功能是成为一种可以由虚拟机的解释器高效执行的格式。机器代码是计算机的基本语言,用二进制或十六进制编写,计算机的CPU可以理解。它是所有程序运行前必须转换成的语言。

平台

–字节码与平台无关,因为它可以在任何平台上使用虚拟机执行。字节码的格式总是相同的,不管它是在什么类型的机器上创建的。一个程序可以被编译成字节码并发送到任何一台安装了运行时的机器上。另一方面,机器代码不是独立于平台的,这意味着它不能在任何具有相同操作系统的平台上运行,因为它是由与特定计算机相关联的本机指令组成的。

字节码与机器码:比较图

总结

字节码不是任何特定计算机的机器码,可以在计算机体系结构中移植。它类似于由运行时系统解释的机器代码,以便代码可以在系统上执行。虚拟机将字节码转换成计算机处理器能够理解的特定机器指令。机器代码是一种计算机程序,它可以由计算机硬件直接执行而不需要软件。与字节码不同的是,字节码是独立于平台的,机器码不能在同一操作系统的任何平台上运行。

  • 发表于 2021-06-26 16:35
  • 阅读 ( 123 )
  • 分类:IT

你可能感兴趣的文章

源代码(source code)和字节码(bytecode)的区别

...辑器编写程序。这些程序被称为源代码。 什么是字节码(bytecode)? 当编程语言从源代码转换为机器代码时,一些编程语言将源代码转换为称为字节码的中间代码。Java是使用字节码的主要编程语言之一。将源代码转换为字节码的...

  • 发布于 2020-10-19 15:49
  • 阅读 ( 651 )

取决于机器(machine dependent)和机器无关代码优化(machine independent code optimization)的区别

关键区别-机器相关代码优化与机器无关代码优化 计算机程序是一组指令,用于执行任务。这些程序大多是用高级语言编写的,而计算机不理解这种语言。因此,编译器用于将这些指令转换为机器代码或目标代码。它经过几个...

  • 发布于 2020-10-20 02:55
  • 阅读 ( 391 )

源程序(source program)和目标程序(object program)的区别

...而Java源文件(.Java文件)首先被编译(使用javac命令)为字节码(一种包含在.class文件中的目标代码),然后使用Java解释器(使用Java命令)进行解释。当软件应用程序被分发时,它们通常不包括源文件。但是,如果应用程序是...

  • 发布于 2020-10-26 14:27
  • 阅读 ( 204 )

为什么java虚拟机可以帮助代码更好地运行

...序是用java编译器编写和编译的。生成的目标代码(称为字节码)可以传输到运行在不同硬件上的不同主机操作系统,并且应该可以正常运行。 ...

  • 发布于 2021-03-13 07:13
  • 阅读 ( 255 )

银行代码(swift code)和排序代码(sort code)的区别

Swift代码与分拣代码 Swift和Sort代码是识别某个银行的两种方法。这些主要用于电汇,以确定来源和目的地。swift和sort代码的主要区别在于它们的使用位置。分类代码仅由英格兰和爱尔兰用于识别该国境内的银行及其各自的分行...

  • 发布于 2021-06-23 19:49
  • 阅读 ( 503 )

编码(coding)和编程(programming)的区别

...编写代码。计算机不能用我们的语言进行交互;它只理解机器代码,即二进制语言。因此,编码人员所做的就是将需求翻译成机器能够理解的语言。他们更像是一个面向语言的程序员,他们把逻辑翻译成机器可读的代码。 一个...

  • 发布于 2021-06-25 04:52
  • 阅读 ( 1237 )

jdk公司(jdk)和jre公司(jre)的区别

...并编译Java程序时,Java编译器会将Java程序转换为一个称为字节码的中间代码。JVM代表Java虚拟机。它是一种将字节码转换成机器码的抽象机器。 CPU无法理解源代码。只有程序员才能理解。因此,源代码被转换成机器可读和可理解...

  • 发布于 2021-07-01 00:02
  • 阅读 ( 199 )

虚拟机(jvm)和清除(clr)的区别

JVM和CLR的主要区别在于JVM是一个用于执行Java字节码的虚拟机,而CLR是一个管理.NET程序执行的虚拟机。 JVM或Java虚拟机允许执行字节码,字节码是通过编译Java源代码生成的。它可以在许多硬件和软件平台上使用。换句话说,JVM依...

  • 发布于 2021-07-01 03:02
  • 阅读 ( 286 )

机器代码(machine code)和汇编语言(assembly language)的区别

机器代码和汇编语言之间的主要区别在于,机器代码是一种由可由计算机直接执行的二进制文件组成的语言,而汇编语言是一种低级编程语言,需要一种称为汇编程序的软件将其转换成机器代码。 程序员用编程语言编写计算机...

  • 发布于 2021-07-01 03:33
  • 阅读 ( 820 )

JAVA(java)和python(python)的区别

...n之间的主要区别在于,Java编译器将Java源代码转换为称为字节码的中间代码,而Python解释器将Python源代码逐行转换为机器代码。 Java是一种设计用于分布式环境的编程语言。它是Android智能**和物联网(IoT)等各种应用程序的流行...

  • 发布于 2021-07-01 03:43
  • 阅读 ( 332 )
fvh5967827
fvh5967827

0 篇文章

相关推荐