- JVM是一种规范
oracle jvm文档:
https://docs.oracle.com/javase/specs/index.html - JVM和java无关
任何语言,只要编译成class文件,就可以在jvm上运行。 - JVM是虚构出来的一台计算机
有自己的字节码指令集(汇编语言)和内存管理(堆、栈、方法区等)
java从编译到执行
image.png- x.java通过javac编译成x.class文件
- java类库和x.class文件会被classLoader装载到内存中
- 装载完成后会调用字节码解释器或即时编译器进行解释或编译
- 最后由执行引擎开始执行
JDK/JRE/JVM关系
image.png-
JRE(Java Runtime Enviroment)
Java的运行环境。
面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。
JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。
它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。 -
JDK(Java Development Kit)
Java的开发工具包。
它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。
如果你下载并安装了JDK,那么你不仅可以开发Java程序,也同时拥有了运 行Java程序的平台。
JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。
网友评论