Java 源代码和字节码的区别

Java 源代码和字节码的区别

当我们开始学习Java时,经常会遇到源代码和字节码这两个术语。当程序员编写Java代码时,它是一种机器无法理解的形式。这段代码被称为源代码,它可以被人类轻松阅读和修改,但机器无法理解。因此,在执行代码之前,我们需要将其转换为一种机器可读的格式,称为机器代码。然而,Java首先将源代码转换为一个中间代码称为字节码,然后再转换为机器代码。让我们讨论一下Java中源代码和字节码之间的区别。

源代码 vs 字节码

源代码

它是程序员使用编程语言(如JavaPythonC++等)编写的原始代码。源代码包含指令、语句、变量、注释和其他构成完整程序的元素。这段代码对人类来说很容易读取和修改,但对计算机来说并不直接可理解。Java编程语言的源代码扩展名为“.java”。

以下是Java源代码的示例:

示例

public class Example {
   public static void main(String[] args) {
      System.out.println("Tutorialspoint Welcomes you!!");
   }
}

输出

Tutorialspoint Welcomes you!!

字节码

它是在源代码成功编译后生成的中间代码。这段代码不是由人类编写的,而是由存在于Java虚拟机中的Javac编译器编写的。它是由二进制、十六进制或宏指令组成的中间级代码。我们需要Java虚拟机是因为字节码也不能直接由计算机执行,但它可以由这个虚拟机处理,将其转换为机器码。

由于可移植的字节码,Java编程语言是平台无关的。一旦Java源代码由Javac编译器编译,它就可以在安装了Java虚拟机的任何系统上运行。

下面的快照代表由Javac编译器生成的前一个示例程序的字节码:

Java 源代码和字节码的区别

Java编程语言的字节码扩展名为’.class’。

源代码和字节码的区别

从上面的讨论中可以得出以下表格总结了源代码和字节码的区别:

源代码 字节码
程序员编写的 由Javac编译器生成的
人类可以阅读和理解代码 Java虚拟机可以读取和理解
使用编程语言以人可读的格式编写的一组指令 使用虚拟机以机器可读的格式编写的一组指令
在执行之前,源代码需要转换为字节码 在执行之前,字节码需要转换为机器码
高级语言 在源代码和机器代码之间的中间语言
源代码可以包含指令,语句,变量和注释 字节码可以包含二进制,十六进制或宏指令

结论

在Java中,源代码和字节码是机器指令的不同层次的表示。Java字节码是由Javac编译器编译的Java源代码的中间表示,而源代码是程序员用高级语言编写的原始代码。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程