JDK、JRE、JVM三者关系详解

java开发工具包 = java运行环境 + java开发工具

Java 运行环境 = Java虚拟机 + java核心类库

JDK是java开发工具包,包含了编写、编译、运行、调试java程序所需的所有工具和组件。它拥有JRE所拥有的一切,还有编译器和工具,能够创建和编译程序。

JRE是java的运行环境,包括了java虚拟机和java标准类库(java API),JRE是针对java应用程序的,提供了在计算机上运行java应用程序所需的最小环境。如果只是为了运行一下java程序的话,只需要安装JRE就行了,如果需要进行java编程方面的工作,那么就需要安装JDK

JVM是java虚拟机,是java程序的运行环境,JVM的主要作用就是将java代码转换为可以在计算机上运行的机器码,并负责程序的执行。字节码和不同系统的JVM实现是java语言一次编译,到处运行的关键所在,JVM并不是只有一种,只要满足JVM规范,每个公司、组织或者个人都可以开发自己的专属JVM。(JVM规范定义了一组标准,这些标准描述了如何执行Java字节码、存储类文件格式、Java API等。遵循JVM规范,任何人都可以创建他们自己的JVM实现)

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

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

相关文章

【FPGA】高云FPGA之IP核的使用->PLL锁相环

FPGA开发流程 1、设计定义2、设计输入3、分析和综合4、功能仿真5、布局布线6、时序仿真7、IO分配以及配置文件(bit流文件)的生成8、配置(烧录)FPGA9、在线调试 1、设计定义 使用高云内置IP核实现多路不同时钟输出 输入时钟50M由晶…

IDEA创建SpringBoot+Mybatis-Plus项目

IDEA创建SpringBootMybatis-Plus项目 一、配置Maven apache-maven-3.6.3的下载与安装(详细教程) 二、创建SpringBoot项目 在菜单栏选择File->new->project->Spring Initializr,然后修改Server URL为start.aliyun.com&#xff0c…

【图像文本化】Base64编解码OpenCV4中 Mat 对象

学习《OpenCV应用开发:入门、进阶与工程化实践》一书 做真正的OpenCV开发者,从入门到入职,一步到位! 前言 很多时候在开发中,需要保存图像为文本形式,以便于存储与传输。最常见的就是把图像文件编码为Ba…

C# CAD交互界面-自定义工具栏(二)

运行环境 vs2022 c# cad2016 调试成功 一、引用 acdbmgd.dllacmgd.dllaccoremgd.dllAutodesk.AutoCAD.Interop.Common.dllAutodesk.AutoCAD.Interop.dll using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.T…

spring boot学习第十篇:elastic search必须使用用户名密码授权后才能访问、在java代码中操作索引

前提条件:安装好了elastic search服务,参考:elastic search入门_ubuntu elasticsearch 密码-CSDN博客 1、配置elastic search必须使用用户名密码授权才能访问 1.1开启x-pack验证 修改config目录下面的elasticsearch.yml文件,添…

VM 虚拟机和容器技术之间有什么区别?

随着云计算技术的不断发展,虚拟机和容器技术作为两种常见的虚拟化技术,被广泛应用于云计算领域。虽然虚拟机和容器技术都是虚拟化技术,但它们之间存在一些重要的区别。本文将详细介绍虚拟机和容器技术的区别,以便读者更好地了解这…

亚信安慧AntDB推动技术创新与满足用户需求

随着互联网技术的迅猛发展,大数据时代的到来,数据库的需求不断增长。在这样的背景下,国产分布式数据库正逐渐崭露头角,AntDB作为其中的重要代表,也积极参与到了这场竞争中。作为国内的技术创新者,AntDB不仅…

【Git】常见代码冲突及处理

常见的Git冲突场景及解决方案如下: 场景:同时修改同一行代码或同一文件的不同部分。 原因:两个开发者对同一行代码或同一文件的不同部分进行了修改。 解决方案:手动解决冲突,合并两个版本的代码。 # 拉取最新代码 git …

【Mybatis】从0学习Mybatis(2)

前言 本篇文章是从0学习Mybatis的第一篇文章,由于篇幅太长CSDN会限流,因此我打算分开两期来写,这是第二期!第一期在这儿:【Mybatis】从0学习Mybatis(1)-CSDN博客 1.什么是ResultMap结果映射&am…

常用技术网站,maven,git,ideal,java,mysql,Oracle,vue等

常用技术网站 前言pom依赖引用网址(maven)代码管理工具(码云)ideal插件下载地址流程图设计工具 前言 本文主要用来记录开发过程中可能会用到的技术资料网站,方便各位码友进行资料查询和资料获取。 pom依赖引用网址&a…

模拟栈(数组实现)

题目 实现一个栈,栈初始为空,支持四种操作: push x – 向栈顶插入一个数x;pop – 从栈顶弹出一个数;empty – 判断栈是否为空;query – 查询栈顶元素。 现在要对栈进行M个操作,其中的每个操作…

从小白到入门webrtc音视频通话

0. 写在前面 先会骑车,再研究为什么这么骑,才是我认为学习技术的思路,底部付了demo例子,根据例子上面的介绍即可运行。 1. 音视频通话要用到的技术简介 websocket 介绍:1. 服务器可以向浏览器推送信息;2…

C#,河豚算法(Blowfish Algorithm)的加密、解密源代码

Bruce Schneier 1 河豚算法(Blowfish Algorithm) 河豚算法(Blowfish Algorithm)是1993年11月由Bruce Schneier设计的一个完全开源的算法。 Blowfish算法是一个分组长度为64位、密钥长度可变的对称分组密码算法。 Blowfish算法具…

Android中AGP与Gradle、AS、JDK的版本关系

文章目录 AGP版本所要求的Gradle、JDK、SDK Build Tools最小版本Android Studio所要求的AGP最小版本 本文介绍了 在Android开发中由于AGP与gradle、JDK、AS等版本不匹配导致的编译失败问题屡见不鲜,尤其是对于新手而言更是叫苦不迭。新手经常遇到拿到别人的工程代码…

绕过过滤空格的 SQL 注入

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、基础知识介绍 在深入了解SQL注入等数据库安全话题之前,掌握一些MySQL数据库的基础知识是很重要的。以下是关于MySQL中一些核心概念和特性的简介: 1.1 MySQL中的大小写不敏…

学习Android的第五天

目录 Android ConstraintLayout 约束布局 简介 ConstraintLayout 约束布局分类 1、相对定位 (Relative positioning) 2、边距 ( Margins ) 3、居中定位和偏向 ( Centering positioning and bias ) 4、环形定位 ( Circular positioning ) 5、对可见性的处理 ( Visibilit…

SPECCPU2017操作说明

1、依赖包下载 yum install gcc* gfortran* 2、将软件包放至被测机器 3、增加权限 chmod X install.sh 4、运行安装 ./install.sh 5、运行 引入编译时所需的环境变量和相关库文件 source shrc 进入/spec2017,执行 ./runcpu -c ../config/Example-gcc-linux-ar…

Spark如何用repartition来提升执行效率

Spark如何用repartition来提升执行效率 什么是repartition如何使用什么时候需要使用repartition 什么是repartition repartition 是 Spark 中的一个转换操作,它可以用来增加或减少分区的数量。这个操作会产生一个新的 RDD,DataFrame 或 Dataset&#xf…

docker安装gitlab-runner

下载镜像并启动 docker run -d --name gitlab-runner --restart always -v /home/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest 进入gitlab-runner容器内 docker exec -it gitlab-runner bash 执行…

Java中Maven的使用分享

目录 Java中Maven的使用分享1. 什么是Maven?2. Maven的安装与配置3. Maven项目的创建与结构4. Maven依赖管理5. Maven生命周期和插件6. Maven常用命令7. 实际案例与高级操作8. 结语 Java中Maven的使用分享 欢迎来到本博客,今天我们将深入探讨Java项目中…