JDK(Java Development Kit),即Java开发工具包,是一个编写Java应用程序的开发环境;JRE(Java Runtime Environment),即Java运行环境,支持Java程序运行的标准环境;JVM(Java Virtual Machine),即Java虚拟机。
- JDK
JDK是Java环境的核心组件,并提供编译、调试和运行一个Java程序需要的所有工具,可执行文件和二进制文件。JDK包含了JRE和一些Java开发工具。也就是说JDK=JRE+Java开发工具(编译器、调试器等)。
- JVM
JVM是Java语言实现跨平台的核心。它运行在操作系统之上,存在于内存中,与内存打交道,与硬件没有直接交互。
JVM主要负责运行Java编译器编译后的字节码文件(*.class文件)。JVM在执行字节码时,把字节码解释成具体平台上的机器码执行。JVM自己无法执行,必须要联合JRE中的Java基础和核心类库才能使用。
JVM是一种抽象,虚拟出来的计算机。JVM之所以被称为虚拟的是因为它提供了一个不依赖于底层操作系统和机器硬件的接口。这种独立于硬件和操作系统的特性正是Java程序可以“一次编写到处执行”的原因。和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据,内存和寄存器,指令集,寄存器,类文件的格式,栈,垃圾回收堆,存储区等。
- JRE
JRE是JVM的实现,它提供了运行Java程序的平台。JRE包含了JVM、Java二进制文件和其它成功执行程序的类文件。JRE不包含任何像Java编译器、调试器之类的开发工具。如果只是想要执行Java程序,只需安装JRE即可,没有安装JDK的必要。也就是说JRE=JVM+Java基础和核心类库。
- JDK, JRE 和JVM的区别
(1)JRE是个运行环境,JDK是个开发环境,编写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。
(2)JDK=JRE+Java开发工具(编译器、调试器等);JRE=JVM+Java基础和核心类库。JDK和JRE都包含了JVM,从而使得我们可以运行Java程序。
(3)JVM是Java编程语言实现跨平台的核心并且具有平台独立性。