为什么java一次编写到处运行?(简单理解JDK、JRE、JVM三者之间的关系)


前言

本文主要分为两个部分:理解java跨平台原理(即:一次编写到处运行)、
java中JDK、JRE、JVM三者之间的关系.


一、java 跨平台原理

java是一门很优秀的程序设计语言,它可以实现一次编写,到处运行。

(1)其他语言不能实现跨平台的原因

a. 接口层面的不同: 例:windows、linux上都有自己的系统级别的API函数(API——应用程序接口),操作系统除了协调应用程序的执行、内存分配、系统资源管理外还要调用各种服务(每种服务都是一种函数),因此不同操作系统有所不同。

b.硬件设备的不同: 指指令集的不同(不同设备处理器不同(CPU架构),因此对应的指令集不同)

(2)java如何做到?

a. 在接口层面: java直接将系统级别的API包括在其中。例如常用System类、包装类、日期时间类、Math类、StringBuffer、StringBuilder类等。

b.在硬件设备层面: java程序经过编译生成字节码文件.class,其可理解为用自己设计的指令集来组织用户所写的程序,由于字节码文件格式都是相同的,通过 JVM(Java虚拟机) 将其翻译成对应的机器可以识别的指令,可以在不同的操作系统上编译。

图解如下:
在这里插入图片描述


二、java运行过程

(1)简单了解一下jvm:
jvm:java虚拟机, 是用C语言编写的一个软件。主要作用是将字节码文件指令翻译成机器可以识别的指令。

java 的运行过程如下:
在这里插入图片描述
对比从C语言的运行过程:
在这里插入图片描述
(2)Java的编译

Java 的编译通过命令javac(即javac.exe,是在JDK安装bin目录下用纯Java语言编写的可执行文件)生成字节码文件(.class)。 然后在JVM中执行Java程序。
在这里插入图片描述


三、JDK、JRE、JVM三者之前的关系

前面介绍了jvm (Java虚拟机),简单理解为:将字节码文件指令翻译成机器可以识别的指令。

(1)JDK: java开发工具包(Java Development Kit)
JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
(2)JRE: Java运行环境(Java Runtime Environment)
JRE可以让计算机系统运行Java应用程序。它包括Java虚拟机(jvm)、Java核心类库和支持文件。

三者之间的关系如下图:
在这里插入图片描述


总结

以上就是本文的全部内容。

猜你喜欢

转载自blog.csdn.net/m0_53689542/article/details/123724509