JDK,JRE,JVM之间的区别
JDK, JRE和JVM是java编程语言的核心概念。他们看起来有点相似。作为一个编程者我们似乎也并不是很关心这个概念。但是她们确实是有区别的,并且他们分别基于不同的目的的。本文将会分别解释这三个概念,并且说明他们之间的不同点。
Java Development Kit (JDK)
JDK是java环境的核心组件,它提供了编译、调试、执行一个java program必须要用到的可执行和二进制的所有tool。JDK是一个平台定制软件,这也是我们为什么要把安装版分为 for Windows, Mac and Unix。我们可以认为JDK就是一个jre的超集。因为jdk包含了含有java编译器、debugger以及一些核心类。
JDK是为写代码的人准备的。
Java Virtual Machine(JVM)
而JVM是java编程语言的心脏,the heart。当我们run了一个program,JVM就开始负责把byte code转换成机器特定的code(machine specific code)。
JVM也是平台无关的,并且提供了核心的java功能比如memory管理、gc(垃圾回收)、安全等等。
JVM支持定制化,我们可以使用java的options(参数)来定制化JVM,什么意思呢?就是你可以给JVM设置最小memory和最大memory。 JVM被称为是一种虚拟化技术(virtual),是因为它提供了不依赖于底层的操作系统和硬件设备的接口。它这种不依赖硬件和操作系统的特点使得java program可以“write-once run-anywhere”。
Java Runtime Environment (JRE)
JRE是JVM的实现,JRE提供了platform(平台)来执行java program。JRE由JVM和java binaries以及确保能够成功执行任何program的其他class。记住了,JRE不包含任何和development有关的工具,比如java compiler,debugger等等。也就是jre不是给开发准备的,而是给运行准备的。如果你想要执行java program,你应该要安装JRE,就没必要安装JDK了。
现在你应该明白了。JDK是为开发准备的,然而JRE只是为了run java的program。JDK 和 JRE 都包含JVM,因为它们都需要run 我们的java program。JVM是我们java编程语言的心脏(heart),JVM是平台无关的。
本文分享自 ImportSource 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!