JVM,JRE和JDK的区别

JVM,JRE和JDK的区别

    • [JVM(Java Virtual Machine,Java虚拟机)](#JVM(Java Virtual Machine,Java虚拟机))
    • JRE
    • JDK

JVM(Java Virtual Machine,Java虚拟机)

Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。因此在运行时,Java源程序需要通过编译器编译成为.class文件。众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll(windows下,下皆以windows平台为例,linux下和solaris下其实类似,为:libjvm.so),这个动态连接库才是java虚拟机的实际操作处理所在。

JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行使用JVM就是为了支持与操作系统无关,实现跨平台。 所以,JAVA虚拟机JVM是属于JRE的,而现在我们安装JDK时也附带安装了JRE(当然也可以单独安装JRE)。

JRE

Java Runtime Environment,Java运行环境。 包含JVM标准实现和java核心类库,完整的Java运行环境.

JRE目录结构

JRE目录结构

  1. bin:Java平台工具所使用的的.exe可执行文件和.dll可执行文件。
  2. lib:代码库、树形设置以及JRE使用的源文件,如------
    rt.jar:Bootstrap类(构成Java平台核心API的运行时类);
    charsets.jar:字符转换类;
    jfxrt.jar:JavaFX的运行时库。
  3. lib\applet:包含支持类的小程序jar文件可以放置在lib/applet/目录中。这样,通过允许小程序类从Applet类装载器的本地文件系统预装,提供同样的保护,就好像他们已经被下载超过净减少启动时间大的小程序。
  4. lib\ext:Java平台的扩展程序(插件等)的默认安装目录。如------
    localedata.jar-用于现场数据 java.text和java.util。
  5. lib\fonts:平台使用的字体文件。
  6. lib\security:包含用于安全管理的文件。这些措施包括安全策略(java.policy)和安全性(java.security)文件。

JDK

Java Development Kit,Java开发环境。 包含了JRE、Java核心类库、开发工具包(编译器+调试工具)

相关推荐
季明洵5 分钟前
C语言实现单链表
c语言·开发语言·数据结构·算法·链表
墨雪不会编程12 分钟前
C++之【深入理解Vector】三部曲最终章
开发语言·c++
怒放吧德德13 分钟前
后端 Mock 实战:Spring Boot 3 实现入站 & 出站接口模拟
java·后端·设计
浅念-20 分钟前
C语言编译与链接全流程:从源码到可执行程序的幕后之旅
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
biyezuopinvip25 分钟前
基于Spring Boot的企业网盘的设计与实现(任务书)
java·spring boot·后端·vue·ssm·任务书·企业网盘的设计与实现
脸大是真的好~28 分钟前
EasyExcel的使用
java·excel
小宋102130 分钟前
Java 项目结构 vs Python 项目结构:如何快速搭一个可跑项目
java·开发语言·python
JavaGuide1 小时前
一款悄然崛起的国产规则引擎,让业务编排效率提升 10 倍!
java·spring boot
吃虫子的人1 小时前
记录使用Arthas修改线上源码重新加载的一次过程
java·arthas