Java中JDK、JRE、JVM是什么?有什么区别?有什么关系?

JDK简介

JDK是Java Development Kit的缩写,是Java的开发工具包。
  JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(JRE),Java工具(javac/java/jdb等)和Java基础的类库(即Java API )。

JRE简介

JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
  JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。 JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。

JVM简介

JVM是Java Virtual Machine(Java虚拟机)的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
   JVM(Java Virtual Mechinal),Java虚拟机,是JRE的一部分。它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。所有平台的上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。
  当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。

JDK&JRE&JVM常见问题

1.JDK和JRE的区别?

JDK JRE
地位 开发环境 运行环境
面向对象 开发人员 程序使用者
主要作用 可以运行Java程序,也可以从事Java开发 只能运行Java程序,不能从事Java开发
组成部分 JRE+Java的开发工具+Java基础类库 JVM+Java核心类库

2.JDK&JRE&JVM的关系是什么?

Java中JDK、JRE、JVM是什么?有什么区别?有什么关系?_第1张图片

3.Java的跨平台原理?如何实现“一次编写,多处运行”?

JAVA源代码
字节码文件
JVM
Linux
Windows
Mac

当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。

你可能感兴趣的:(JAVA)