JDK、JRE、JVM三者之间的联系和区别

概述
java程序是运行在JVM上的,在做开封之前要配置java的开发环境,
在这里插入图片描述
一、JDK
jdk(java se)是java的标准开发包,它提供了编译、运行java程序所需要大的各种工具和资源,包括java编译器、java运行时环境,以及常用的java类库。
在这里插入图片描述
二、JRE
jre(java runtime environment)、java运行环境,用户解释执行java的字节码文件。普通用户只需要安装jre来运行java程序。作为开发者必须安装jdk来编译、调试程序。
下图是jre的安装目录,可以认为bin里的就是jvm,lib中是jvm工作所需要的类库,二jvm和lib合起来就成为jre。在这里插入图片描述 三、jvm jvm(java virutal mechinal),java虚拟机,是jre的一部分。他是java实现跨平台最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟机计算机。所有平台上的jvm想编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机可识别的代码,然后由虚拟机来解释执行。 当使用java编译器编译java程序是,生成的是与平台无关的字节码,这些字节码只面向jvm,不同平台的jvm都是不同的,但他们都提供了相同的接口。jvm是java程序跨平台的关键不用分,只要为不同平台实现了相应的虚拟机,编译后的java字节码就可以在该平台上运行。 四、区别与联系 1.