目录
一、JDK,JRE,JVM
1. JDK
JDK(Java Development Kit) 是Java的标准开发工具包(普通用户只需要安装 JRE来运行 Java 程序。而程序开发者必须安装JDK来编译、调试程序)。它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行环境JRE,以及常用的Java基础类库等,是整个JAVA的核心。
jdk文件夹目录如下图:
bin文件夹里面存放了JDK各种开发工具的可执行文件,其中主要的是编译器(javac.exe)
db文件是一个先进的全事务处理的基于Java技术的数据库(jdk自带数据库db的使用)
include文件里面是Java和jvm交互用的头文件
jre为java运行环境
lib文件夹存放的是JDK工具命令的实际执行程序
2. JRE
JRE(Java runtime environment) 是运行基于Java语言编写的程序所不可缺少的运行环境,用于解释执行Java的字节码文件。
通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。与之前的JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
bin文件夹中的就是JVM
lib中则是JVM工作所需要的类库,而JVM和 lib合起来就称为JRE
3. JVM
JVM(Java Virtual Machine)是Java的虚拟机,是JRE的一部分。它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。
所有平台的上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。
由于JVM的存在 java 具备强大的跨平台优势:
不同的操作系统上有不同的虚拟机,JVM屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。在某个操作系统平台上,开发,编译出来的字节码文件,可以在其他的操作系统平台上运行。在不同的操作系统平台上,安装了对应操作系统的不同版本的jvm虚拟机(java的运行容器)。不同版本的虚拟机,在不同的操作系统平台上,营造出来的运行环境是一样的,所以具备了跨平台性。
二、JDK, JRE, JVM的关系
如下图所示:
三、JAVA在计算机运行的三个阶段
硬盘当中的阶段 ---> class类对象 ---> 运行