java jvm虚拟机
什么是JVM
Java虚拟机(JVM)是使计算机能够运行Java程序的抽象计算机。
JVM有三个概念:
1.规格
2.实施
3.实例。
该规范是正式描述JVM实现要求的文档。 具有单一规范可确保所有实现都可互操作。 JVM实现是满足JVM规范要求的计算机程序。 JVM的实例是在进程中运行的实现,该进程执行编译为Java字节码的计算机程序。
Java运行时环境(JRE)
Java Runtime Environment(JRE)是一个软件包,其中包含运行Java程序所需的软件。 它包括Java虚拟机实现以及Java类库的实现。 拥有Java商标的Oracle公司通过其名为HotSpot的Java虚拟机分发Java运行时环境。
Java开发套件(JDK)
Java Development Kit(JDK)是JRE的超集,包含Java程序员的工具,例如
javac编译器。 Oracle开发公司直接提供免费的Java开发工具包,或者由Oracle管理的OpenJDK开源项目免费提供Java开发工具包。
JVM的作用
JVM执行以下操作:
- 加载代码
- 验证码
- 执行代码
- 提供运行时环境
JVM提供了以下定义:
- 记忆区
- 类文件格式
- 寄存器集
- 垃圾收集堆
- 致命错误报告等
Java虚拟机架构
1. Classloader: Classloader是JVM的子系统,用于加载类文件。
2.类(方法)区域:类(方法)区域存储每个类的结构,例如运行时常量池,字段和方法数据,方法代码。
3.堆:这是在其中分配对象的运行时数据区域。
4.堆栈: Java堆栈存储框架。它保存局部变量和部分结果,并在方法调用和返回中起作用。
每个线程都有一个专用的JVM堆栈,与该线程同时创建。 每次调用方法时都会创建一个新框架。 当框架的方法调用完成时,该框架将被销毁。
5.程序计数器寄存器: PC(程序计数器)寄存器。 它包含当前正在执行的Java虚拟机指令的地址。
6.本机方法堆栈:它包含应用程序中使用的所有本机方法。
7.执行引擎:它包含:
- 虚拟处理器
- 解释器:读取字节码流,然后执行指令。
- 即时(JIT)编译器
参考
:
https://zh.wikipedia.org/wiki/Java_virtual_machine
翻译自: https://www.javacodegeeks.com/2017/10/introduction-java-virtual-machine-jvm.html
java jvm虚拟机