JDK,JRE,JVM 区别和联系【大白话Java面试题】

JDK,JRE,JVM 区别和联系

  • 大白话回答:

    JDK是开发环境一般开发人员需要,包含开发环境(JDK)和运行环境(JRE),JRE是运行环境,普通用户需要。jre文件夹下的bin文件夹就是JVM的东西,lib文件夹是JVM工作所需要的类库,有了JVM就可以跨系统执行

  • 详细描述如下

JDK Java开发的核心(java development kit)

JDK是Java开发工具包,是整个Java开发的核心,包括了Java运行环境JRE、Java工具(javac.exe,java.exe,jar.exe 等)和Java基础类库。

JRE Java的运行环境( java runtime environment)

JRE是Java的运行环境,包含JVM标准实现及Java核心类库。并不是一个开发环境,所以没有包含任何开发工具;↑↑↑

所有的Java 程序都要在JRE下才能运行。普通用户只需要运行已开发好的java程序,安装JRE即可。

JVM Java跨平台核心(java virtual machine)

JVM是Java虚拟机,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

JDK、JRE、JVM的联系与区别(JDK>JRE>JVM)

联系

JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。

2.在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,

而jvm和lib和起来就称为jre。JVM+lib=JRE。也就是(jre→bin+jre→lib)==JRE总体来说就是(如下图)

我们利用JDK(调用JAVA API)开发了属于我们自己的Java程序后,通过JDK中的编译程序(javac)将我们的文本java(.java)文件编译成Java字节码(.class),

在JRE上运行这些Java字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

区别

JDK和JRE区别:在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户

(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境(JDK),一个是运行环境(JRE);

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

相关推荐
再见晴天*_*29 分钟前
SpringBoot 中单独一个类中运行main方法报错:找不到或无法加载主类
java·开发语言·intellij idea
lqjun08272 小时前
Qt程序单独运行报错问题
开发语言·qt
hdsoft_huge4 小时前
Java & Spring Boot常见异常全解析:原因、危害、处理与防范
java·开发语言·spring boot
风中的微尘4 小时前
39.网络流入门
开发语言·网络·c++·算法
雨白4 小时前
Java 多线程指南:从基础用法到线程安全
android·java
Hungry_Shark5 小时前
IDEA版本控制管理之使用Gitee
java·gitee·intellij-idea
赛姐在努力.5 小时前
《IDEA 突然“三无”?三秒找回消失的绿色启动键、主菜单和项目树!》
java·intellij-idea
未来之窗软件服务5 小时前
幽冥大陆(二)RDIFSDK 接口文档:布草洗涤厂高效运营的技术桥梁C#—东方仙盟
开发语言·c#·rdif·仙盟创梦ide·东方仙盟
猎板PCB黄浩5 小时前
从废料到碳减排:猎板 PCB 埋容埋阻的绿色制造革命,如何实现环保与性能双赢
java·服务器·制造
ZzzK,5 小时前
JAVA虚拟机(JVM)
java·linux·jvm