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

JVM、JRE和JDK是与Java开发和运行相关的三个重要概念。

再了解三者之前让我们先来了解下java源文件的执行顺序:

  1. 使用编辑器或IDE(集成开发环境)编写Java源文件.即demo.java
  2. 程序必须编译为字节码文件,javac(Java编译器)编译源文件为demo.class文件.
  3. 类文件可在任何平台/操作系统上由JVM(Java虚拟机)执行(能一次编译,到处运行就是因为JVM)。
  4. JVM将字节码文件翻译为机器可以执行的机器码(0,1二进制)。

一、JVM

JVM(Java Virtual Machine,Java虚拟机): JVM是Java程序运行的环境,它是Java平台的核心组成部分。它负责解释并执行Java字节码(由Java源代码编译而成),提供了对硬件和操作系统的抽象,使得Java程序可以在不同的系统上运行。JVM还提供了垃圾回收、内存管理、安全性等功能,以确保Java程序的可靠性和安全性。JVM之所以称为虚拟机,是因为它提供了一个不依赖于底层操作系统和机器硬件体系结构的机器接口,在执行字节码时,把字节码解释成具体平台上的机器指令执行。所以java可以一次编写到处运行。

二、JRE(运行环境)

JRE(Java Runtime Environment,Java运行时环境): JRE是Java应用程序的运行时环境,它包含了JVM以及Java基础类库和所需的运行时资源。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。JRE提供了Java程序运行所需的一切,包括类加载、字节码解释、垃圾回收等功能。如果只需要运行Java应用程序而不需要进行开发,只需安装JRE即可。

三、JDK(开发环境)

JDK(Java Development Kit,Java开发工具包): JDK是用于开发Java应用程序的工具包,它包含了JRE以及编译器、调试器、开发工具和其他一些辅助工具。JDK提供了开发Java应用程序所需的一切,包括编译、调试、文档生成、性能分析等工具。如果需要进行Java应用程序的开发,需要安装JDK。

区别:

  • JVM是Java程序运行的虚拟机,提供了对字节码的解释和执行。
  • JRE是Java应用程序的运行时环境,包含了JVM和运行时所需的类库等资源。
  • JDK是用于开发Java应用程序的工具包,包含了JRE以及开发工具、编译器等。

简而言之,JVM负责运行Java程序,JRE提供运行Java程序所需的一切,而JDK是开发Java程序所需的工具包。

JVM<JRE<JDK。

相关推荐
重生之我要进大厂5 分钟前
LeetCode 876
java·开发语言·数据结构·算法·leetcode
_祝你今天愉快8 分钟前
技术成神之路:设计模式(十四)享元模式
java·设计模式
Amo Xiang21 分钟前
Python 常用模块(四):shutil模块
开发语言·python
Happy鱿鱼39 分钟前
C语言-数据结构 有向图拓扑排序TopologicalSort(邻接表存储)
c语言·开发语言·数据结构
KBDYD101040 分钟前
C语言--结构体变量和数组的定义、初始化、赋值
c语言·开发语言·数据结构·算法
计算机学姐41 分钟前
基于python+django+vue的影视推荐系统
开发语言·vue.js·后端·python·mysql·django·intellij-idea
小筱在线1 小时前
SpringCloud微服务实现服务熔断的实践指南
java·spring cloud·微服务
luoluoal1 小时前
java项目之基于Spring Boot智能无人仓库管理源码(springboot+vue)
java·vue.js·spring boot
ChinaRainbowSea1 小时前
十三,Spring Boot 中注入 Servlet,Filter,Listener
java·spring boot·spring·servlet·web
Crossoads1 小时前
【数据结构】排序算法---桶排序
c语言·开发语言·数据结构·算法·排序算法