JVM指的是Java virtual machine, 即java虚拟机。

是运行java代码的引擎。在其他主要的编程语言中,代码的编译器都只会为某个特定系统生成编译之后的代码,也就是说这部分代码只能在特定的系统上执行。而java编译器不为特定的平台生成字节码,而是为Java虚拟机生成字节码,编译生成的字节码是可用于在任何平台上运行的源代码,因此jvm成为了将Java代码编译为字节码的媒介,它在不同的机器上进行解释,使的java语言与平台/操作系统独立。字节码相当于是Java源代码和主机系统之间的中介语言。

jre与jdk的区别(JVMJDKJRE三者的关系是什么)(1)

JVM,JDK,JRE

一个java虚拟机主要做了下面几件事:

阅读字节码。

验证字节码。

将代码与库链接。

可以用下图解释jvm主要做的事情

JDK指的是Java SE Development Kit,即java se开发库。

jre与jdk的区别(JVMJDKJRE三者的关系是什么)(2)

金字塔

JDK包括完整的JRE(Java运行时环境)以及用于开发,调试和监视Java应用程序的工具(例如jconsole等)。 JDK是构建和运行Java应用程序和applet所必需的。 它可以被视为一个套件, 程序员和开发人员大多使用它。

JRE指的是Java runtime environment,即java运行时环境。

JRE代表Java Runtime Environment,用于在运行时提供环境。 它是JVM能够支持多平台的原因。 它包含一组库以及JVM在运行时使用的核心类和各种其他文件。 JRE是JDK(Java Development Toolkit)的一部分,但可以单独下载。

JRE由各种组件组成,如下:

Java Web Start和Java Plug-in。

用户界面工具包,包括抽象窗口工具包(AWT),Swing,图像输入/输出,辅助功能,拖放等。

其他不同的基础库,包括输入/输出,扩展机制,bean,JMX,JNI,网络,覆盖机制等。

Lang和util库,管理,版本控制,集合包等等。

集成库,包括接口定义语言(IDL),Java数据库连接(JDBC),Java命名和目录接口(JNDI),远程方法调用(RMI)。

,