jvm内存结构(一)

时间:2023-03-09 19:30:16
jvm内存结构(一)

学习之余,整理了下JVM的资料

堆:

需要重点关注的一块区域,涉及到内存的分配与回收

方法区:

用于存储已经被虚拟机加载的类信息、常量、静态变量等数据,也叫永久区

常量池:

用于存放编译期生成的各种字面量和符号引用(JDK6在方法区、JDK7在堆中)

虚拟机栈:

栈里面存放着各种基本数据类型和对象的引用

方法执行时会创建一个栈帧(存储局部变量表、操作数栈、动态链接、方法出口等信息)

每个方法的从调用到执行完成,对应着栈帧在虚拟机栈中入栈和出栈的过程

本地方法栈:

本地方法栈保存的是native方法的信息,当一个JVM创建的线程调用native方法后,JVM不再为其在虚拟机栈中创建栈帧,JVM只是简单地动态链接并直接调用native方法

程序计数器:

较小的内存空间,当前线程执行的字节码的行号指示器;各线程之间独立存储,互不影响

jvm内存结构(一)