深入理解Java虚拟机---(2)JDK、JRE、JVM的联系与区别

写在前面:

    程序员在自己的计算机上安装好JDK后,可以开发自己的Java程序,可能就不是那么关心JDK、JRE、JVM之间的联系,今天通过这篇博客来进行一些总结。


1. JDK:

    JDK是指 Java Development Kit ---Java开放工具包,包括了Java运行环境JRE、Java工具和Java核心类库,在安装好JDK后,会有几个文件夹。

  •     bin:存放Java的操作工具,启动JVM的Java等。
  •     db:存放了Java测试的数据库derby。
  •     include:存放C++的头文件。
  •     jre:Java的运行环境
  •     lib:Java运行和依赖的核心库。
  •     src:Java的源代码

2. JRE:

    JRE是指 Java RunnTime Environment --Java的运行环境。仅有JVM不能完成字节码文件的解释,在解释.class文件的时候还需要调用解释所需要的类库lib。在安装好JDK后的JRE文件夹中,有一个lib和bin,lib就是解释.class文件所需要的类库,bin则是JVM。

3. JVM:

    JVM是指Java Virtual Machine ---Java虚拟机,是Java能够实现跨平台的核心部分。因为所有程序都会被编译成.class也就是字节码文件。由于字节码文件不与我们的操作系统对应,而是先由我们的JVM进行解释,最后再交给本地系统,实现了Java的可移植性。

注:虽然Java语言跨平台,但是JVM不跨平台,windows和LInux有不同的版本。


下面这张图,也反映了,JDK、JRE、JVM的联系:

深入理解Java虚拟机---(2)JDK、JRE、JVM的联系与区别

    总结:

    如果用一句话来总结JDK、JRE、JVM的关系,程序开发者利用JDK(也成为Java API)开发Java程序,通过JDK中的编译工具Javac来编译Java程序成为字节码文件。之后在JRE上运行字节码文件,最后通过JVM的解释,映射到我们的CPU的指令集或者是OS的系统调用。