Java的运行机制以及Java跨平台的原理

2022-05-10 20:43:44 浏览数 (1)

1、首先说一下JDK、JRE和JVM的关系

JDK(Java Development Kit)是 Java 语言的软件开发工具包,它包含有JRE、编译器和调试器等用于程序开发的文件。抛开JRE不谈,它主要能干编译和调试两件事。

JRE(Java Runtime Environment)即java运行环境,它包含了JVM及java的核心类库。抛开JVM不谈,它主要提供一些必要的运行文件。

JVM(Java Virtual Machine)即Java虚拟机,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java的解释器就包含在JVM中。JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。

它的主要功能是,将字节码文件class文件解释成对应平台机器码并执行。不同的操作系统因为他们的机器码不同所以他们的JVM不同。

所以他们的关系就可以用下图来表示:

2、Java程序运行机制

Java的运行主要分两步:先编译再解释执行

(1)先通过“编译器”将Java源程序(.java)编译成Java字节码文件(.class)(字节码文件采用结构中立的中间文件格式)

(2)通过不同的虚拟机(JVM)将字节码文件解释为机器语言并执行

用图来表示就是:

3、Java跨平台原理

因为程序都需要编译生成字节码文件(.class),而字节码文件生成后是结构中立的中间文件格式,即可看作是无关于源文件(.java)也无关于虚拟机(JVM)的文件,这样在不同机器上执行同一份.class文件他们的执行结果也相同。

用图表示就是:

0 人点赞