JVM、JRE、JDK的关系浅析

JVM、JRE、JDK的关系浅析

JVM

Java虚拟机。Oracle公司制定的Java虚拟机规范在技术上规定了JVM的统一标准,具体定义了JVM的如下细节:

  • 指令集
  • 寄存器
  • 类文件的格式
  • 垃圾回收堆
  • 存储区

JVM是通过软件仿真模拟出的一种计算机。它有自己的硬件结构,如上述所说的指令集、寄存器。JVM的内存区域由Method Area、Heap、Stack、PC Register、Native Method Stack以及class loader、Execution Engine、Native Interface 、Native Libs构成。JVM对java源文件不关心,它只在意字节码文件。此外不同大公司对JVM有着自己的实现版本,公版为HotSpot。

其他具体详见《Java虚拟机规范》以及《深入理解Java虚拟机》

JRE

Java Runtime Environment。包括了

  • Java核心类库(如Lang&Util、Collections、NIO等等 )
  • JVM

事实上,JVM负责运行java程序,JRE则向JVM提供必要的类库以及支持文件。JRE是运行Java程序的必要条件,仅仅JVM无法是不够的。

JDK

Java Development Kit。在包括了JRE的同时,提供了一些Java工具如javac、javap,以及Java的文档JavaDoc。JDK主要分为以下三种不同的版本

  • Java SE,standard edition 标准版,整个Java技术的核心和基础,它是J2ME && J2EE的基础。
  • Java ME,micro edition 微型版,主要用户嵌入式设备
  • Java EE,enterprise edition 企业版,面向企业级应用如servlet等等。J2EE是在J2SE的基础上添加了一系列的企业级应用编程接口。

总结一下 JVM < JRE < JDK

你可能感兴趣的:(Java)