源代码和字节码的区别


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

源代码与字节码

源代码

它是程序员使用编程语言(如Java、Python、C++等)编写的原始代码。源代码包含指令、语句、变量、注释和其他构成完整程序的元素。此代码易于人类阅读和修改,但计算机无法直接理解。Java编程语言源代码的扩展名为“.java”。

这是一个Java源代码示例:

示例

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

输出

Tutorialspoint Welcomes you!!

字节码

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

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

以下快照显示了Javac编译器生成的先前示例程序的字节码。

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

源代码和字节码的区别

下表总结了上述讨论中源代码和字节码的区别:

源代码

字节码

由程序员编写。

由Javac编译器生成。

人类可以阅读和理解代码。

Java虚拟机可以读取和理解。

它是使用编程语言以人类可读格式编写的一组指令。

它是使用虚拟机以机器可读格式编写的一组指令。

源代码需要在执行前转换为字节码。

字节码需要在执行前转换为机器码。

它是一种高级语言。

它是源代码和机器码之间的中间语言。

源代码可以包含指令、语句、变量和注释。

字节码可以包含二进制、十六进制或宏指令。

结论

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

更新于:2023年7月21日

浏览量:783

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.