JVM,JRE和JDK的区别小结

 更新时间:2023年09月04日 15:51:13   作者:每周都想吃火锅  
在Java环境配置和项目启动中,JVM,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目录结构

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

JDK

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

由图中可以看出以下几点:

  • JDK=JRE+多种Java开发工具
  • JRE=JVM+各种类库
  • 这三者的关系是一层层的嵌套关系。JDK>JRE>JVM

到此这篇关于JVM,JRE和JDK的区别小结的文章就介绍到这了,更多相关JVM,JRE和JDK内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ElasticSearch如何设置某个字段不分词浅析

    ElasticSearch如何设置某个字段不分词浅析

    最近在学习ElasticSearch官方文档过程中发现的某个问题,记录一下 希望能帮助到后面的朋友,下面这篇文章主要给大家介绍了关于ElasticSearch如何设置某个字段不分词的相关资料,需要的朋友可以参考下
    2022-04-04
  • Java join 线程控制用法

    Java join 线程控制用法

    Java join 线程控制用法,需要的朋友可以参考一下
    2013-03-03
  • SpringBoot基于JAXB实现天地图路径规划结果XML转JSON

    SpringBoot基于JAXB实现天地图路径规划结果XML转JSON

    这篇文章主要为大家详细介绍了SpringBoot如何基于JAXB实现将天地图路径规划结果XML转JSON功能,文中的示例代码讲解详细,需要的可以了解下
    2025-02-02
  • Java中的形式参数和实际参数案例详解

    Java中的形式参数和实际参数案例详解

    这篇文章主要介绍了Java中的形式参数和实际参数,形参和实参间的关系,两者是在调用的时候进行结合的,通常实参会将取值传递给形参,形参去之后进行函数过程运算,然后可能将某些值经过参数或函数符号返回给调用者,需要的朋友可以参考下
    2023-10-10
  • Spring Cache简单介绍和使用大全

    Spring Cache简单介绍和使用大全

    Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,这篇文章主要介绍了Spring Cache简介和使用,需要的朋友可以参考下
    2023-03-03
  • SpringBoot文件上传的原理解析

    SpringBoot文件上传的原理解析

    这篇文章主要介绍了SpringBoot文件上传的原理解析,SpringBoot 文件上传是一种方便快捷的方式,可以将文件上传到服务器,通过使用SpringBoot的文件上传功能,可以轻松地实现文件上传功能,需要的朋友可以参考下
    2023-10-10
  • springboot+logback的多环境配置全过程

    springboot+logback的多环境配置全过程

    文章介绍了Spring Boot多环境配置的两种方式:推荐使用bootstrap.yml+环境专用文件(如bootstrap-dev.yml)区分配置,而旧版(2.6.x以下)可采用bootstrap.yml+application-xxx.yml,同时说明Logback需将配置文件改为logback-spring.xml以支持springProperty多环境日志设置
    2025-09-09
  • 使用Java编写控制JDBC连接、执行及关闭的工具类

    使用Java编写控制JDBC连接、执行及关闭的工具类

    这篇文章主要介绍了如何使用Java来编写控制JDBC连接、执行及关闭的程序,包括一个针对各种数据库通用的释放资源的工具类的写法,需要的朋友可以参考下
    2016-03-03
  • java8中lamba表达式的使用

    java8中lamba表达式的使用

    这篇文章主要介绍了java8中lamba表达式的使用,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • Java中字符串转int数据类型的三种方式

    Java中字符串转int数据类型的三种方式

    这篇文章主要介绍了Java中字符串转int数据类型的三种方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论