JVM的空间结构

目录

一、概述

二、分类

1.程序计数器区域(Program Counter Register):

2.Java虚拟机栈(Stack):

3.堆区(Heap):

4.方法区(Method Area):

5.本地方法栈(Native Method Stack):


一、概述

JVM分为5个主要区域:程序计数器区、Java虚拟机栈、堆区、方法区和本地方法栈,用来存储各种不同的信息,如代码、对象实例、变量等等。

二、分类

JVM的空间结构可以分为以下几个部分:

1.程序计数器区域(Program Counter Register):

程序计数器区域是每个线程私有的,它保存了当前线程的执行地址或执行到了哪一行代码,每当线程执行一个方法时,计数器的值就会加一,当执行完方法时,计数器的值就会被清空。

2.Java虚拟机栈(Stack):

每个线程在执行的时候都会有一个栈帧,它用于保存局部变量表、操作数栈、动态链接、方法出口等信息。栈帧是在方法调用时被创建,在方法返回时被销毁。

3.堆区(Heap):

是Java虚拟机管理的最大的一块内存空间,用来存放对象实例。堆空间是被所有线程共享的一块内存区域,在虚拟机启动时便被创建,当堆空间被耗尽时,会触发垃圾回收机制。

4.方法区(Method Area):

用于存储虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等信息。

5.本地方法栈(Native Method Stack):

与Java虚拟机栈类似,但是它不是Java虚拟机所规范的部分,它是为了使用Java Native Interface(JNI)技术而预留的。

你可能感兴趣的:(JAVA,jvm,java,开发语言)