jvm简介和体系结构

Posted lnu161403214

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm简介和体系结构相关的知识,希望对你有一定的参考价值。

1,简介

技术图片

JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机。

Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

“一次编译,到处运行”

JVM在JRE中;JDK(Java Development Kit)为开发工具包,有编译和调试java程序的工具。

 

2、体系结构

技术图片

 

由上面5个部分组成。方法区里还包括一个运行时常量池。

(1)线程共享的区域:

 Java堆:负责存储所有对象实例和数组的

方法区域:存储了类的信息

(2)线程私有的区域:

java栈(虚拟机栈):栈里面存储着的是StackFrame,被译作java虚拟机框架,也叫做栈帧。

StackFrame包含三类信息:局部变量,执行环境,操作数栈。局部变量用来存储一个类的方法中所用到的局部变量。执行环境用于保存解析器对于java字节码进行解释过程中需要的信息,包括:上次调用的方法、局部变量指针和 操作数栈的栈顶和栈底指针。操作数栈用于存储运算所需要的操作数和结果。StackFrame在方法被调用时创建,在某个线程中,某个时间点上,只有一个 框架是活跃的,该框架被称为Current Frame,而框架中的方法被称为Current Method,其中定义的类为Current Class。
技术图片

程序计数寄存器:当前线程所执行的字节码的行号指示器;

如果线程正在执行的是一个Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Natvie 方法,这个计数器值则为空(Undefined)。

本地方法堆栈:类似java栈,JVM采用本地方法堆栈来支持native方法的执行,此区域用于存储每个native方法调用的状态。

5个部分图示:

技术图片

图示2:

技术图片

 

以上是关于jvm简介和体系结构的主要内容,如果未能解决你的问题,请参考以下文章

JVM——java虚拟机内存结构简介

JVM运行结构图

一文搞定JVM的内存结构

Java虚拟机内存结构及编码实战

节:如何看待Java上层技术与JVM?

节:如何看待Java上层技术与JVM?