龙空技术网

JDK、JRE和JVM的区别与相互之间的联系

程序员界的彭于晏 1838

前言:

此时朋友们对“java jre和jdk的区别”大约比较珍视,各位老铁们都想要了解一些“java jre和jdk的区别”的相关文章。那么小编也在网上网罗了一些有关“java jre和jdk的区别””的相关文章,希望各位老铁们能喜欢,小伙伴们一起来了解一下吧!

工作这么久,好多时间都在研究一些并发、多线程、分布式、框架等这些东西,但是前几天突然被人问到jdk、jre、jvm的区别与联系,瞬间觉得一脸懵逼,感觉还是有必要重新整理一下一些比较基本的java知识了。

1. 定义

JDK:

Java Develpment Kit java 开发工具

JRE:

Java Runtime Environment java运行时环境

JVM:

java Virtual Machine java 虚拟机

2. 使用人群

jdk 是给开发人员使用的, jre和jvm是给普通用户使用

3. 详细介绍

JDK:

是java开发工具包,是Sun公司针对java开发人员的产品,jdk中包含jre,在jdk的安装目录下有一个jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里面就是jvm,lib中是java工作需要的类库,而java和lib合起来就称为jre

JRE:

是运行基于java语言编写的程序所不可缺少的运行环境,也是通过它,java的开发者才可以将自己开发的程序发布到用户手中,让用户使用,与大家熟悉的jdk不同,jre是运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器,调试器)等,知识针对使用java程序的用户

JVM:

就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序首先被编译为.class文件,这种类文件可以在虚拟机上运行,也就是说class并不直接与机器的操作系统相对应。而是经过虚拟机间接的与操作系统交互,由虚拟机将程序解释给本地系统执行,只有jvm还不能将class执行,因为在解释class的时候jvm需要调用解释所需要的类库lib,而jre包含lib类库,jvm屏蔽了具体操作系统平台的相关信息,使得java程序只需要生成在java虚拟机上运行的目标代码。可以在多种平台(操作系统)上不加修改的运行

4. 关联关系

简单来说就是JDK包含JRE,JRE包含JVM的关系

标签: #java jre和jdk的区别 #java和jdk和jre