Java中JDK、JRE,JVM之间的关系

Java中的JDKJREJVM是三个核心概念,其关系可概括为JDK > JRE > JVM,具体如下:


一、定义与作用

  1. JDK(Java Development Kit)

    • 定义:Java开发工具包,用于开发和编译Java程序。
    • 包含内容:JRE + 开发工具(如javac编译器、jar打包工具、javadoc文档生成工具等) + 基础类库。
    • 适用场景:开发者使用,需安装JDK以编写和调试代码。
    • 示例:开发Java应用时,需通过javac.java文件编译为.class字节码文件148。
  2. JRE(Java Runtime Environment)

    • 定义:Java运行环境,用于执行已编译的Java程序。
    • 包含内容:JVM + 核心类库(如rt.jar,提供基本数据类型、线程、IO等支持)。
    • 适用场景:用户运行Java程序时只需安装JRE。
    • 示例:用户双击.jar文件时,JRE中的java.exe会启动JVM执行字节码137。
  3. JVM(Java Virtual Machine)

    • 定义:Java虚拟机,负责将字节码(.class文件)解释或编译为机器码执行。
    • 核心功能:跨平台支持(不同操作系统需安装对应的JVM) + 内存管理(堆、栈等运行时数据区) + 垃圾回收。
    • 示例:同一份.class文件可在Windows、Linux的JVM上运行,无需重新编译158。

二、三者关系

  1. 层级结构

    • JDK包含JRE和开发工具。
    • JRE包含JVM和核心类库。
    • JVM是执行字节码的核心,依赖JRE中的类库支持148。

    图解

    JDK = JRE + 开发工具(javac、jar等)  
    JRE = JVM + 核心类库(rt.jar等)
    
  2. 功能区别

    • JDK vs JRE:JDK包含编译工具(如javac),JRE仅用于运行程序。
    • JRE vs JVM:JVM需依赖JRE的类库(如rt.jar)才能执行字节码7814。
  3. 实际目录验证

    • JDK安装目录下存在jre子目录,内含bin(JVM)和lib(核心类库)。
    • 若仅安装JRE,则目录中无javac等开发工具357。

三、典型应用场景

  1. 开发阶段:开发者需安装JDK,利用javac编译代码并调试。
  2. 部署阶段:用户仅需JRE即可运行编译后的程序(如.jar文件)。
  3. 跨平台运行:JVM屏蔽操作系统差异,实现“一次编译,到处运行”189。

四、总结

  • JDK是开发者的“工具箱”,JRE是程序的“运行舞台”,JVM是跨平台的“翻译官”。
  • 三者的选择:
    • 开发Java程序 → 安装JDK
    • 运行Java程序 → 安装JRE(或直接使用JDK自带的JRE)。
    • 深入理解底层 → 研究JVM的内存模型和垃圾回收机制4814。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用C++ Qt实现安卓电池充电动效 | 打造工业级电量控件

一、为什么需要自定义电池控件? 在工业控制、车机系统、智能硬件等领域的UI开发中,电池状态显示是高频出现的UI组件。通过实现一个支持颜色渐变、动态充电动画、警戒阈值提示的电池控件,开发者可以系统掌握以下核心能力: Qt绘图…

Django+Vue3全栈开发实战:从零搭建博客系统

文章目录 1. 开发环境准备2. 创建Django项目与配置3. 设计数据模型与API4. 使用DRF创建RESTful API5. 创建Vue3项目与配置6. 前端页面开发与组件设计7. 前后端交互与Axios集成8. 项目优化与调试9. 部署上线10. 总结与扩展10.1 项目总结10.1.1 技术栈回顾10.1.2 项目亮点 10.2 扩…

Django 5实用指南(五)模板系统

Django5的模板系统是其核心功能之一,允许开发者将动态数据嵌入到HTML模板中,并根据不同的业务需求渲染页面。Django模板系统基于 Django模板语言(DTL),它提供了一些强大的功能,如模板标签、过滤器、条件语句…

uni-app开发app时 使用uni.chooseLocation遇到的问题

问题一:不显示 问题二:选择地址列表一直在加载中 因为 uni-app 接口文档 中已经说明,使用腾讯的话需要开启云服务,具体可看官网,这就是为什么使用时直接不显示的原因,所以我使用的高德,但又出现…

推荐系统-排序模型

本次学习的重点是FM系列和WideNDeep系列。其实这两个模型是存在因果关系的。从最初的LR模型开始,因为缺失高效的特征交互方式,产生了FM模型,即通过向量内积代替特征之间的两两交互的参数。最后DNN的引入可以建模更高阶的特征。但是DNN如何与F…

体验用ai做了个python小游戏

体验用ai做了个python小游戏 写在前面使用的工具2.增加功能1.要求增加视频作为背景。2.我让增加了一个欢迎页面。3.我发现中文显示有问题。4.我提出了背景修改意见,欢迎页面和结束页面背景是视频,游戏页面背景是静态图片。5.提出增加更多游戏元素。 总结…

c#爬取数据并解析json

安装 Newtonsoft.Json Install-Package Newtonsoft.Json代码 HttpClient client new HttpClient();// 获取网页内容HttpResponseMessage response client.GetAsync("https://opentdb.com/api.php?amount10&category18&difficultyeasy&typemultiple"…

计算机毕业设计Python农产品推荐系统 农产品爬虫 农产品可视化 农产品大数据(源码+LW文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

【分布式理论13】分布式存储:数据存储难题与解决之道

文章目录 一、数据存储面临的问题二、RAID磁盘阵列的解决方案1. RAID概述2. RAID使用的技术3. RAID的代表性等级 三、分布式存储的新思路1. 分布式存储背景与特点2. 分布式存储的组成要素 一、数据存储面临的问题 在单机系统时代,当数据量不断增加、硬盘空间不够时…

高德地图android sdk(备忘)

依赖 // 权限请求框架:https://github.com/getActivity/XXPermissions implementation com.github.getActivity:XXPermissions:20.0 // https://mvnrepository.com/artifact/com.amap.api/navi-3dmap-location-search implementation com.amap.api:navi-3dmap-loca…

DeepSeek、微信、硅基流动、纳米搜索、秘塔搜索……十种不同方法实现DeepSeek使用自由

为了让大家实现 DeepSeek 使用自由,今天分享 10 个畅用 DeepSeek 的平台。 一、官方满血版:DeepSeek官网与APP 首推,肯定是 DeepSeek 的官网和 APP,可以使用满血版 R1 和 V3 模型,以及联网功能。 网址: htt…

自动化之ansible(二)

一、ansible中playbook(剧本) 官方文档: Ansible playbooks — Ansible Community Documentation 1、playbook的基本结构 一个基本的playbook由以下几个主要部分组成 hosts: 定义要执行任务的主机组或主机。 become: 是否需要使用超级用户…

python 神经网络教程,神经网络模型代码python,小白入门基础教程

文章目录 前言1. 神经网络基础概念1.1 神经元1.2 激活函数1.3 神经网络结构1.4 安装 Python1.5 选择开发环境2. 使用numpy构建简单神经网络 3. 使用PyTorch构建复杂神经网络 前言 本教程旨在为广大初学者和有一定基础的开发者提供一个系统、全面且深入的 Python 神经网络学习指…

SOME/IP--协议英文原文讲解10

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.2.2 Req…

Spring框架基本使用(Maven详解)

前言: 当我们创建项目的时候,第一步少不了搭建环境的相关准备工作。 那么如果想让我们的项目做起来方便快捷,应该引入更多的管理工具,帮我们管理。 Maven的出现帮我们大大解决了管理的难题!! Maven&#xf…

用大内存主机下载Visual Studio

用一台内存达到128G的主机下载Visual Studio 2022,用的是公司网络。下载速度让我吃了一惊,没人用网络了?还是网站提速了?以前最大只能达到5MB/秒。记录这段经历,是用来分析公司网络用的......

Ubuntu20.04.2安装Vmware tools

软件版本:Vmware Workstation Pro 17.6.2 操作系统镜像文件:ubuntu-20.04.2-desktop-amd64 方式1:用iso镜像安装 没用这种方法,太麻烦 方式2:用apt安装Open VM Tools 如果你使用的是较新的Ubuntu版本(如…

Mac系统下使用Docker快速部署MaxKB:打造本地知识库问答系统

随着大语言模型的广泛应用,知识库问答系统逐渐成为提升工作效率和个人学习的有力工具。MaxKB是一款基于LLM(Large Language Model)大语言模型的知识库问答系统,支持多模型对接、文档上传和自动爬取等功能。本文将详细介绍如何在Ma…

2526考研资料分享 百度网盘

通过网盘分享的文件:01、2026【考研数学】 链接: https://pan.baidu.com/s/1N-TlXcCKMcX1U-KBr0Oejg?pwducbe 提取码: ucbe 提取码:98wg--来自百度网盘超级会员v3的分享 通过网盘分享的文件:01、2026【考研政治】 链接: https://pan.baidu.com/s/1N-T…

【信息系统项目管理师-案例真题】2013下半年案例分析答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一【问题‍ 1】(12 分)【问题‍ 2】(10 分)【问题 3】( 3 分 )试题二【问题‍ 1】(3‍ 分)【问题‍ 2】(10‍ 分)【问题‍ 3】(3‍ 分)【问题‍ 4】(9‍ 分)试题三【问题‍ 1】(12‍ 分)‍【问题‍ 2】(8‍…