java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > JDK、JRE、JVM的区别与联系

解读JDK、JRE、JVM的区别与联系

作者:Salute-Y

这篇文章主要介绍了解读JDK、JRE、JVM的区别与联系,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、jdk

JDK(Java Development Kit):

jdk是Java的开发工具包,是整个java开发的核心。

其中主要包含了三方面的内容:

Java API是Java的应用程序接口,里面有很多已经写好的Java class,包含一些重要的语法结构和基本的线程、图形和IO等。

我们可以直接拿来使用。

Java的一些工具包(其中包含了javac源码编译器,还有一些其他的命令:jdb,javah,jmp等)。

在学习java之前,一般都是安装运行环境,下载一个JDK。在jdk中有很多的文件,其中最主要的就是四个文件:bin、include、jre、lib。

在jre目录底下,还有一个bin文件和lib文件,这两个文件与之前的不同,这里的bin文件可以认为就是jvm,lib文件就是jvm运行时需要的类库。

JVM+ lib库=JRE。

二、jre

JRE(Java Runtime Environment—java运行环境):

jre是java程序的运行环境,所有的Java程序必须依赖jre才能运行。jre中包含jvm,但是只有jvm是不能完全解释字节码文件的,还需要一些核心的类库。

这些类库都存放在jre目录底下的lib文件中。所以jre就包括了两部分:解释字节码的jvm+一些核心类库(存放于lib文件中)

三、jvm

JVM(Java Virtual Machine–java虚拟机):

jvm是jre的一部分,jvm是虚拟出的一台计算机,这台计算机不关心java源代码如何写的,它只关心java源程序编译出的字节码文件,jvm是java程序能实现跨平台的核心,它不关心真实计算机,也不关心操作系统等等,就像一个中间平台,只负责将字节码文件转换成当前计算机能理解的CPU指令集或系统调用。

jvm有自己完善的硬件架构,如处理器、栈区、寄存器等。

总结:jvm是一个虚拟的中间平台,只负责将编译后的字节码文件转换成当前计算机能理解并执行的指令,其他都不关心。jvm是java“一次编译,到处执行”的原因。

四、关系图

五、一个Java程序的执行过程

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

您可能感兴趣的文章:
阅读全文