JDK、JRE、JVM的联系与区别

JDK、JRE、JVM的联系与区别

一、JDK,JRE,JVM定义

JDK(Java Development Kit),包含JRE,以及增加编译器和调试器等用于程序开发的文件。
JRE(Java Runtime Environment),包含Java虚拟机、库函数、运行Java应用程序所必须的文件。
JVM(Java Virtual Machine)是一个虚拟的用于执行bytecode字节码"虚拟计算机"。一般与OS操作系统打交道。

复制代码
JDK(Java Development Kit):java的开发工具,包括jre+开发工具.
JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。  
JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。java语言是跨平台,jvm不是跨平台的。

二、JDK,JRE,JVM联系与区别

1.联系

JDK包含了Java的运行环境(即JRE)和Java工具。JRE包含了一个Java虚拟机(JVM)以及一些标准的类别函数库。总的来说,JDK、JRE、JVM三者都处在一个包含关系内,JDK包含JRE,而JRE又包含JVM。

2.区别

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

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

三、总结

对于JDK、JRE、JVM来说,它们三个都和运行环境有关,级别上JDK>JRE>JVM。

引用

1https://www.jianshu.com/p/7dbc997fde89?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2https://blog.csdn.net/shaogaiyue9745602/article/details/130700486

3https://mp.weixin.qq.com/s?__biz=MzI5MTQ5NDY1MA==&mid=2247497514&idx=1&sn=603cce1f393f91a8b41cb833c589839b&chksm=ec0d78bfdb7af1a95bb44722ac48ccc3c423f28e90203fd7c553820ad37871fd0bfc10449caa&scene=27

相关推荐
立心者09 分钟前
SpringBoot中使用TOTP实现MFA(多因素认证)
java·spring boot·后端
枕星而眠16 分钟前
C++ STL Map容器完全指南:从有序红黑树到无序哈希表
java·开发语言
爱吃牛肉的大老虎1 小时前
Rust对象之结构体,枚举,特性
开发语言·后端·rust
bbq粉刷匠1 小时前
HashMap 底层原理深度拆解(二):putVal 完整链路解析(懒加载 · 链表遍历 · 尾插法)
java·开发语言·哈希算法
Sam_Deep_Thinking1 小时前
一个靠谱的C端网关服务应该包含什么内容
java·程序员·系统架构
@三十一Y2 小时前
C++:红黑树的实现
开发语言·c++
杨运交2 小时前
[055][调度模块]Spring动态任务调度框架的设计与实现
java·后端·spring
白狐_7982 小时前
408 数据结构算法题 01:线性表暴力求解保分指南
java·数据结构·算法
流云鹤2 小时前
03Java学习day(3)
java·学习
乐观勇敢坚强的老彭2 小时前
C++信奥:开关门、开关灯问题
开发语言·c++·算法