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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java定义泛型接口和类的方法实例分析

    Java定义泛型接口和类的方法实例分析

    这篇文章主要介绍了Java定义泛型接口和类的方法,结合实例形式分析了泛型相关概念、原理及泛型接口与类的定义实现方法,需要的朋友可以参考下
    2019-08-08
  • maven创建spark项目的pom.xml文件配置demo

    maven创建spark项目的pom.xml文件配置demo

    这篇文章主要为大家介绍了maven创建spark项目的pom.xml文件配置demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Java多线程中的Interrupt简析

    Java多线程中的Interrupt简析

    这篇文章主要介绍了Java多线程中的Interrupt简析,Interrupt 的其作用是"中断"线程, 但实际上线程仍会继续运行, 这是一个非常容易混淆的概念,Interrupt 的真正作用是给线程对象设置一个中断标记, 并不会影响线程的正常运行,需要的朋友可以参考下
    2023-09-09
  • java实现的图片裁剪功能示例

    java实现的图片裁剪功能示例

    这篇文章主要介绍了java实现的图片裁剪功能,涉及java针对图片的读取、转换、保存等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • SpringBoot面试突击之过滤器和拦截器区别详解

    SpringBoot面试突击之过滤器和拦截器区别详解

    过滤器(Filter)和拦截器(Interceptor)都是基于 AOP(Aspect Oriented Programming,面向切面编程)思想实现的,用来解决项目中某一类问题的两种“工具”,但二者有着明显的差距,接下来我们一起来看
    2022-10-10
  • 图文结合讲解Java单例模式

    图文结合讲解Java单例模式

    这篇文章主要以图文结合的方式为大家详细介绍了Java单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • SpringBoot HikariCP连接池详解

    SpringBoot HikariCP连接池详解

    这篇文章主要介绍了SpringBoot2.0 中 HikariCP 数据库连接池原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java 将字符串动态生成字节码的实现方法

    Java 将字符串动态生成字节码的实现方法

    本篇文章主要是对Java将字符串动态生成字节码的实现方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • java 使用ConcurrentHashMap和计数器实现锁

    java 使用ConcurrentHashMap和计数器实现锁

    这篇文章主要介绍了java 使用ConcurrentHashMap和计数器实现锁的相关资料,需要的朋友可以参考下
    2017-05-05
  • jenkins安装及其配置笔记

    jenkins安装及其配置笔记

    这篇文章主要介绍了jenkins安装及其配置笔记,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01

最新评论