【Java核心】JDK、JRE、 JVM的联系与区别

2023-09-17 20:29:39

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

JDK、JRE、 JVM的联系与区别



1. 简述


简单来说

JDK 是开发 Java 程序所需的工具包,包含了 JRE,并且额外提供了开发工具和库。JRE 是 Java 的运行时环境,包含了JVM。JVM 是运行 Java 程序的虚拟机。




2. 是什么


JDK、JRE 和 JVM 是与 Java 相关的三个重要术语,它们在 Java 开发和执行过程中扮演不同的角色,有着密切的联系:

  1. JVM(Java Virtual Machine,Java 虚拟机):JVM 是 Java 的核心组件之一,它是一个虚拟的计算机环境,负责在运行 Java 程序时解释和执行 Java 字节码。JVM 是跨平台的关键,它能够将编写的 Java 代码在不同操作系统上运行,将字节码翻译成与底层操作系统和硬件相匹配的机器码。同时,JVM 还负责内存管理、垃圾回收、线程管理等任务。
  2. JRE(Java Runtime Environment,Java 运行时环境):JRE 是 Java 应用程序的运行环境,包含了 JVM 和 Java 标准类库(Java API),它提供了 Java 程序运行所需的核心类库和支持文件。JRE 是给用户或最终用户使用的,它只包含运行 Java 程序所需的组件,不包含编译器和其他开发工具。
  3. JDK(Java Development Kit,Java 开发工具包):JDK 是用于开发 Java 应用程序的软件包,它包含了 JRE,同时还提供了编译器(javac)、调试器(jdb)、文档生成工具(javadoc)以及其他开发所需的工具和库。JDK 是给开发人员使用的,它提供了编写、编译和调试 Java 程序的一切必要组件。



3. 联系和区别


JDK、JRE、JVM三者的联系和区别

  • JDK 是用于开发 Java 程序的工具包,包括了 JRE,同时提供了编译器(javac)和其他开发工具。

  • JDK 针对开发人员和编写 Java 程序的环境,JRE 针对最终用户和运行 Java 程序的环境。

  • JDK 包含了 JRE,但是 JRE 没有包含 JDK 的开发工具部分。

  • JVM 是运行 Java 程序的虚拟机,JRE 则是包含 JVM 和 Java 标准类库的运行时环境。

  • 在这里插入图片描述



在这里插入图片描述

更多推荐

字符串函数和内存函数详解(2)

🐵本文会将会对剩余的字符串库函数和内存函数进行讲解1.strstr📚1.1函数用法✏️strstr函数原型:strstr用于在字符串中找子串,strstr会返回str1中出现str2的起始地址,如果在str1中没有找到str2,则返回空指针1.2具体实现🖊️#include<stdio.h>#include<st

秋招如何做好IT面试准备

一年一季又是到了秋招的日子,回首去年这时候的自己也在准备面试中苦苦挣扎,在这里给各位学弟学妹分享一些面试准备的小技巧吧。方向一:分享你面试IT公司的小技巧IT公司区别与其他公司肯定对技术要求更高,所以首先你要准备的是你简历上写的东西你是否都能回答的上,因为大部分公司面试第一出发点都是你的简历,不要在简历上胡吹海侃给自己

视觉Transformer在低级视觉领域的研究综述

视觉Transfomer的基本原理在图像处理过程中,ViT首先将输入的图片分成块,对其进行线性的编码映射后排列成一堆的向量作为编码器的输入,在分类任务中会在这个一维向量加入了一个可学习的嵌入向量用作分类的类别预测结果表示,最后通过一个全连接层输出结果注意力机制注意力机制让网络更聚焦于输入中相关信息的方法,从而减少对无关

实时云渲染与直播应用场景结合技术探索

//随着互联网以及终端设备的全面发展,直播在日常的生活中已经越来越常见。越来越多的人开始在直播中与主播互动,作为一种娱乐消遣的方式。但是有些直播平台频发的卡顿以及打赏特效的单一会让用户的直播体验大打折扣。LiveVideoStack邀请到腾讯云的江敏为我们介绍腾讯云如何将云渲染应用在直播场景中,为直播带来更好的体验。文

前端中blob文件流和base64的区别

在前端中,base64和fileBlob是用于处理文件数据的两种不同方式。1.Base64编码Base64是一种将二进制数据转换为文本字符串的编码方式。它将文件数据转换为一串由ASCII字符组成的字符串。在前端中,可以使用JavaScript的btoa()和atob()函数来进行Base64编码和解码。优点:-Base

基於RISC-V QEMU 仿真運行Linux 系統環境搭建

前言文章詳細說明如何從堶零開始基於RISC-VQEMU仿真運行Linux系統環境搭建,是Linux小白入門教程不二之選,歡迎留言討論,轉發請注明原文出處~1.準備QEMU仿真環境--RISC-V64bits安裝包下載地址:https://www.qemu.org/安裝命令及安裝成功效果如下所示,target-list設

RabbitMQ常见的应用问题

文章目录1.消息可靠性保障2.消息的幂等性保障1.消息可靠性保障在实际生产环境中,可能会由于网络问题导致消息接收异常产生某种影响,基于这种情况我们需要保障消息的可靠性。RabbitMQ中的消息可靠性也称为消息补偿,如下图所示,可以保证消息的可靠性。分为9种种步骤实现消息补偿1、生产者处理业务逻辑,将数据写入到数据库。2

【云原生】kubernetes应用程序包管理工具Helm

Helm什么是Helm安装Helm重要概念使用Helm1简介官网地址:HelmHelm是一个Kubernetes应用程序包管理工具,它允许你轻松管理和部署Kubernetes应用程序。Helm通过使用称为Charts的预定义模板来简化Kubernetes应用程序的部署和管理。Chart包含了一组Kubernetes对象

【云原生 | 58】Docker三剑客之Docker Swarm中的调度器

🍁博主简介:🏅云计算领域优质创作者🏅2022年CSDN新星计划python赛道第一名🏅2022年CSDN原力计划优质作者🏅阿里云ACE认证高级工程师🏅阿里云开发者社区专家博主💊交流社区:CSDN云计算交流社区欢迎您的加入!目录1、spread调度策略2、binpack调度策略👑👑👑结束语👑👑👑

[Django-1] 快速建立项目

初始化Django初始化项目创建app项目和app的关系下面的代码一般放在view.py中项目启动项目中中的urls.py和app中的urls.py的关系ModelDjango生成表查询理解初始化项目python-mpipinstallDjangocd到想要创建项目的目录django-adminstartproject

【云原生之Docker实战】使用Docker部署flatnotes笔记工具

【云原生之Docker实战】使用Docker部署flatnotes笔记工具一、flatnotes介绍1.1flatnotes简介1.2flatnotes特点二、本地环境介绍2.1本地环境规划2.2本次实践介绍三、本地环境检查3.1检查Docker服务状态3.2检查Docker版本3.3检查dockercompose版本

热文推荐