java程序的运行必须经过三个阶段:编写、编译、运行
编写:指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。
编译:通过java编译器将java源文件(*.java)编译为java字节码文件(*.class)
运行:通过java类加载器将java字节码加载到堆内存中,再通过java解释器将堆内存中的Class对象解释为可执行代码
具体流图:
具体解释:
1.字节码文件:字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。它是一种二进制文件,是 Java 源文件由 Java 编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的 Java 解释器来解释执行,因此 Java 是一种在编译基础上进行解释运行的语言,经过类加载器加载进内存的Class类对象也是字节码文件,可以被解释器解释。
2.java类加载器:Java 解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此 Java 程序不能直接运行在现有的操作系统平台上,它必须运行在被称为 Java 虚拟机的软件平台之上。
3.Java虚拟机:Java 虚拟机(JVM)是运行 Java 程序的软件环境,Java 解释器是 Java 虚拟机的一部分。在运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的,不同操作系统之上的 JVM 是不同的,JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的。
标签:解释器,Java,字节,代码执行,JVM,java,过程,运行 From: https://www.cnblogs.com/Noob-Green-Hand/p/17289630.html