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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解Spring Security 捕获 filter 层面异常返回我们自定义的内容
Spring 的异常会转发到 BasicErrorController 中进行异常写入,然后才会返回客户端。所以,我们可以在 BasicErrorController 对 filter异常进行捕获并处理,下面通过本文给大家介绍Spring Security 捕获 filter 层面异常,返回我们自定义的内容,感兴趣的朋友一起看看吧2022-05-05SpringBoot整合Javamail实现邮件发送的详细过程
日常开发过程中,我们经常需要使用到邮件发送任务,比方说验证码的发送、日常信息的通知等,下面这篇文章主要给大家介绍了关于SpringBoot整合Javamail实现邮件发送的详细过程,需要的朋友可以参考下2022-10-10
最新评论