一,什么是java jdk?
根据百度百科定义:JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
理一理思路很简单:
JDK (Java Development Kit) java 开发工具。
JRE (Java Runtime Environment) Java 运行时环境。
JVM (Java Virtual Machine) Java Virtual Machine) Java 虚拟机。
这三者的关系是:一层层的嵌套关系。JDK>JRE>JVM。
他们都做了什么呢:
jdk 开发java文件代码,通过编译器编译成xx.class 字节码文件。
jre 中的Jvm 虚拟机解释xx.class 文件 应用各种系统的api 互通。因此实现了夸平台。
jdk 是我们的开发工具包,它集成了 jre ,因此我们在安装 jdk 的时候可以选择不再安装 jre 而直接使用 jdk 中的 jre 运行我们的 Java 程序。(但是大部分人都默认将两个都装上了)。但是如果你的电脑不是用来开发 Java 程序的,而仅仅是用来部署和运行 Java 程序的,那么完全可以不用安装 jdk,只需要安装 jre 即可。
jvm 只能认识字节码,并将它们解释到系统的 API 调用。针对不同的系统有不同的 jvm 实现,有 Linux 版本的 jvm 实现,也有 Windows 版本的 jvm 实现,但是同一段代码在编译后的字节码是一样的。引用上面的例子,在 Java API 层面,我们调用系统声音设备的代码是唯一的,和系统无关,编译生成的字节码也是唯一的。但是同一段字节码,在不同的 jvm 实现上会映射到不同系统的 API 调用,从而实现代码的不加修改即可跨平台运行。