Java字节码-Java快速进阶教程
Java 中的字节码是一组高度优化的 Java 虚拟机 (JVM) 指令,用于读取和解释以运行 Java 程序。
字节码是只能在 JVM 上运行的二进制程序代码。换句话说,它是 JVM 的机器语言(代码),以.class文件的形式出现,但它不基于任何特定的机器,因为它不是本机代码,只是一种中间性质的代码。
简而言之,它不是任何特定硬件处理器的机器语言(机器指令)。
字节码充当独立于平台(机器)的中间语言。它由Java解释器并生成可以直接在真机的指令。
Java字节码的特征
Java 字节码有两个最重要的特征,如下所示:
- 字节码独立于处理器,即Java程序可以在任何处理器架构上执行。
- 它不依赖于Windows,Linux和Mac OS等操作系统。
字节码在Java中是如何工作的?
当我们编写Java程序时,源代码(以.java文件的形式)由Java编译器编译并以.class文件的形式转换为字节码。
看看下2张图就能更好地理解它了。
此编译字节码是独立于平台的代码,可以在安装了JVM 解释器的任何不同计算机上正确运行。简而言之,一次编写,编译并在任何地方运行。
这些字节码不是机器指令。因此在第二阶段过程,JVM解释器获取编译好的字节码,并将其转换为机器码,该机器码可以由运行java程序源代码的任何计算机系统直接执行。执行字节码所需的资源由调用微处理器分配所需资源的 JVM 提供。
因此,我们可以说JVM在java程序的执行中起着重要作用。
因此,Java既是一种编译语言,也是一种解释性语言,有助于轻松地将Java程序从一个计算机系统移动到另一个计算机系统。
操作系统、处理器和系统资源的任何更改和升级都不会影响 Java 程序。
这就是为什么Java已成为世界上最受欢迎的编程语言之一的原因,它可以在互联网上互连全球不同类型的系统。
Java字节码的优点
Java字节码主要有两个优点,如下:
1. 字节码使 java 程序在不同的硬件(处理器)和操作系统平台上可移植。 唯一要求就是必须在其上安装 Java 虚拟机。
2. 第二个优点是,由于JVM对字节码文件的执行的控制,它增加了代码的安全性。
字节码与机器码的区别
字节码和机器码之间的主要区别在于字节码只能在JVM上运行,而机器码是一组机器语言的指令,可以直接由CPU运行。
.java和.class的区别
Java 源代码文件(扩展名为.java)被编译为字节码(具有.class扩展名),然后由名为 JVM 的 Java 处理器解释和执行。
关键点:
1. Java 中的字节码是 Java 编译器生成并由 Java 解释器 (JVM) 执行的一组字节长的指令。
2. 当Java编译器编译.java文件时,它会生成一系列字节码(与机器无关的代码)并将它们存储在.class文件中。
3. 然后,JVM解释并执行存储在.class文件中的字节码,并将其转换为机器码。
4. 字节码在不同的平台上保持不变,例如 Windows、Linux 和 Mac OS。