源代码和字节码的区别
当我们开始学习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源代码的中间表示,而源代码是由程序员使用高级语言编写的原始代码。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP