01-JDK、JRE、JVM之间的区别?

news2024/11/23 3:46:14

在这里插入图片描述

1.JDK

JDK(Java SE Development Kit),Java标准开发包,它提供了编译、运⾏Java程序所需的各种⼯具和资源,包括Java编译器、Java运⾏时环境,以及常⽤的Java类库等.
在这里插入图片描述

JDK安装目录中真正在运行java时起作用的是 bin、include、lib、 jre这四个文件夹。

bin:各种开发工具, 最主要的是编译器(javac.exe)
include:java和JVM交互用的头文件
lib:类库
jre:java运行环境

2.JRE

JRE( Java Runtime Environment) ,Java运⾏环境,⽤于运⾏Java的字节码⽂件。JRE中包括了
JVM以及JVM⼯作所需要的类库,普通⽤户⽽只需要安装JRE来运⾏Java程序,⽽程序开发者必须
安装JDK来编译、调试程序。

在这里插入图片描述

在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。

JRE的组件如下:

1.部署技术,包括部署、Java Web Start 和 Java 插件。

2.用户界面工具包,包括抽象窗口工具包 (AWT)、Swing、Java 2D、可访问性、图像 I/O、打印服务、声音、拖放( DnD)和输入法。

3.集成库,包括接口定义语言 (IDL)、Java 数据库连接 (JDBC)、Java 命名和目录接口 (JNDI)、远程方法调用 (RMI)、基于 Internet Inter-Orb 协议的远程方法调用 (RMI-IIOP)和脚本。

4.其他基础库,包括国际支持、输入/输出 (I/O)、扩展机制、Beans、Java 管理扩展 (JMX)、Java 本机接口 (JNI)、数学、网络、覆盖机制、安全性、序列化和Java XML 处理 (XML JAXP)。

5.Lang 和 util 基础库,包括lang 和 util、管理、版本控制、zip、仪器、反射、集合、并发实用程序、Java 存档 (JAR)、日志记录、首选项 API、参考对象和正则表达式。

6.Java 虚拟机 (JVM),包括Java HotSpot 客户端和服务器虚拟机。

3.JVM

JVM(Java Virtual Mechinal),Java虚拟机,是JRE的⼀部分,它是整个java实现跨平台的最核⼼的
部分,负责运⾏字节码⽂件。

无论你使用 JRE 还是 JDK 运行的 Java 程序都会进入 JVM,而 JVM 负责逐行执行 Java 程序,因此它也被称为解释器。

4.三者联系

JVM不能单独搞定class的执行,解释class的时候JVM需要调用JRE的类库lib。在JRE目录里有两个文件夹bin和lib,可以认为bin里的就是jvm,lib里的则是jvm工作所需要的类库,而jvm和 lib和起来就称为JRE。

利用JDK(调用JAVA API)开发了JAVA程序后,通过JDK中的编译程序(javac)将java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

5.三者区别

JDK和JRE区别:JDK的bin目录里有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户是不需要的。JDK还有jar.exe, javadoc.exe等用于开发的可执行指令文件。证实了一个jdk是开发环境,而jre是运行环境。

JRE和JVM区别:仅JVM并不代表可以执行class,因为JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。

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

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

相关文章

一网打尽链表的经典OJ题!链表必考笔试题第二弹

目录 0.前言 1.合并两个排序链表 1.1 实用小妙招 1.2代码书写 2.链表分割 3.链表的回文结构 4.相交链表 4.1 实用小妙招(假定指针法) 4.2代码书写 5. 复制带随机指针的链表 0.前言 本文代码及分析图片资源都以上传Gitee,可自取&a…

【Java数据结构】堆与优先级队列(堆)的详解

文章目录 目录 文章目录 一、优先级队列(堆) 1.1优先级队列的概念 二、优先级队列的模拟实现 2.1堆的概念 2.2堆的存储方式 2.3堆的创建 2.4建堆的时间复杂度 2.5堆的插入和删除 三.常用的PriorityQueue介绍 3.1PriorityQueue特性 3.2PriorityQueue常用方法 3.3oj练习 一、优…

CANoe-Model Editor介绍以及如何创建一个服务

Model Editor,模型编辑器,可以打开导入的ARXML文件,编辑现有的或定义新的应用层对象(CO、DO) 什么是CO和DO? Model Editor页面的整体布局为: 在左侧的子窗口中,你可以选择要编辑的内容根据你的选择,相应的内容将显示在右侧根据你在此处的选择,你可以使用其他拆分器来…

Vue--》Vue3的setup语法糖到底香不香?你来看看就知道了

目录 setup语法糖 创建Vue3项目 setup语法糖的使用 快速生成setup语法糖模板 setup语法糖新增的API useSlots()和useAttrs() 顶层await setup语法糖 相信在了解过这篇文章的 setup函数讲解 人会觉得Vue3处理数据变得繁琐了,所有的变量都必须return出来才能使…

8步,用python实现进行自动化评论、点赞、关注脚本

嗨害大家好鸭! 我是小熊猫~ 分享这个没啥,就是好玩 这里写目录标题嗨害大家好鸭! 我是小熊猫~开发环境代码实现点击此处跳转文末名片获取1.请求伪装2.获取关键词3. 获取作品评论ID采集4. 设置评论相应内容5. 设置点赞操作6. 设置关注操作7. 获…

数据结构实验头歌 第1关:求图的最短路径

任务描述 本关任务:编程实现求图的最短路径 相关知识 最短路径的Dijkstra算法: 求最短路径就是求图中的每一个点到图中某一个给定点(认为编号为0的点)的最短距离。 具体算法就是初始有一个旧图,一个新图。开始时旧图中…

Linux项目自动化构建工具-make/Makefifile

目录 背景 实例代码 依赖关系 依赖方法 原理 项目清理 可重复执行的依据 背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系…

K8s部署前后端分离项目(一)

K8s部署前后端分离项目 环境准备 K8s环境 主节点master:192.168.3.200 子节点node1:192.168.3.201 子节点node2:192.168.3.202 Harbor远程仓库 已部署在master主节点上,目录为:cd /workspace/harbor/harbor 1、登录地…

java使用XDocReport导出word

使用XDocReport 导出word效果word编辑器案例word模板模板制作解决图片不存在时, "现场照片" 列被隐藏问题依赖返回数据对象 DailyRecordReportOpinionVO 审核记录对象PicVo 图片对象导出接口效果 说明: “现场图片” 为动态图片列表 , “专业负责人审核意见” 和 “项…

freeswitch的多租户模式

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 现在的VOIP服务越来越倾向于云端服务,包括呼叫中心云服务,线路云平台。 而云平台对多个客户的服务就需要做好隔离,包括数据隔离、线路隔离、服务隔离等。 freeswitch内部的多租户模…

如何给视频批量添加背景图的实例操作教程

如何给视频添加上背景图片呢?有需要的宝宝跟着小编一起来看看怎么操作的吧。 先运行【云炫AI智剪】,然后再选择画中画,切换相对应的界面当中。 接下来把底画背景图导入到列表中,可以选中文件直接拖动到软件中,或者…

多次执行相同的push、replace问题(重写push、replace)

1.多次执行相同的push、replace问题编程式导航路由跳转到当前路由(参数不变), 多次执行会抛出NavigationDuplicated的警告错误注意:编程式导航(push|replace)才会有这种情况的异常,声明式导航是没有这种问题,因为声明式导航内部已…

你是真的“C”——详解C语言函数模块知识(上篇)

详解C语言函数模块知识(上篇)😎前言🙌1. 函数是什么⁉️2、C语言中函数的分类🙌库函数:😃自定义函数😃**这里通过几个例子来辅助大家更好的理解函数如何用** ⁉️1、实现一个函数来交换两个整数…

C语言实现静态通讯录

专栏:C语言 每日一句:这几年可能会有点累,但要相信你的人生不可能就止于此地了,你要有你的梦想,所以你要努力,只有坚持这阵子,才不会辛苦一辈子,努力会让自己过得很好, 静…

Qt扫盲-QAction理论总结

QAction理论总结一、概述二、使用一、概述 在应用程序中,许多常用命令可以通过 菜单、工具栏按钮 和 键盘快捷键 调用。由于用户希望以相同的方式执行每个命令,而不管使用什么用户界面,因此将每个命令表示为一个Action操作是有效的。可以将A…

23年 车辆检测+车距检测+行人检测+车辆识别+车距预测(附yolo v5最新版源码)

我们先看一下效果2023年最新版 yolo车距行人识别yolov5和v7对比yolo车距其他步骤参考另外一篇文章: yolo 车辆测距车辆识别单目测距(双目测距)_SYBH.的博客-CSDN博客_yolo测距基于yolo目标检测算法实现的车前道路中的车辆和行人检测&#xf…

opener 值得注意的安全问题

前言 最近在学习浏览器知识的时候,讲到了浏览器之间的渲染进程共用的问题。其中 opener 能被引用到的两个页面,会在同一个渲染进程中。而这两个页面,可以称为:浏览上下文组。但在测试的时候,反倒是发现了一个opener 注…

JavaEE进阶第一课:Spring核心与设计思想

目录1.Spring是什么1.1什么是容器1.2什么是IoC1.3什么是DISpring的核心功能1.Spring是什么 用官方的话来说:Spring是包含众多工具方法的IoC容器 但是仅仅这样一句话,就会让大家有许多不解?什么是IoC?什么是容器?接下来…

python基础篇之字符串类型

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm1000.2115.3001.5343 哔哩哔哩欢迎关注&…

Java字节流基础详解(InputStream/OutputStream)

文章目录概念InputStream字节输入流FileInputStream文件字节输入流FileOutputStream字节输出流相关的方法(write)和构造器构造器注意事项文件拷贝概念 在Java中,字节流一般适用于处理字节数据(诸如图片、视频)&#x…