Java干货分享:新手如何理解常说的JDK、JRE、JVM

很多刚刚学习Java的初学者对于JDK、JRE、JVM的概念还很模糊 ,于是笔者整理了一些相关的知识点,从三者的本质出发,给大家总结一下这三者到底有何区别于作用!先对这三者理一下关系,有一个大概的了解:JDK包含JRE,而JRE包含JVM。

Java干货分享:新手如何理解常说的JDK、JRE、JVM_第1张图片

JDK是Java Development Kit的简称,它是是针对Java开发而开发出来的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。

Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

1、JDK

JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和>起来就称为jre。DK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括>rt.jar)。

Java干货分享:新手如何理解常说的JDK、JRE、JVM_第2张图片

二、Java Runtime Environment(JRE)

JRE是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。

JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。

与JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。

Java干货分享:新手如何理解常说的JDK、JRE、JVM_第3张图片

三、JVM

JVM是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

只有JVM还不能产生class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

Java干货分享:新手如何理解常说的JDK、JRE、JVM_第4张图片

看了以上的详细叙述,你对于这三者之间的理解是否更加深入了呢?

欢迎刚入门的Java小白朋友们加入Java之家:93068,2353

群内提供免费的Java的学习资料(里面有企业级技术、日常练习案例等多个知识点的资料,每晚我还会在群内直播上课)

你可能感兴趣的:(Java干货分享:新手如何理解常说的JDK、JRE、JVM)