JVM内存空间结构
2018-04-28 09:27:42 1 举报
JVM内存结构图讲解
作者其他创作
大纲/内容
方法区Method Area
虚拟机栈:
动态链接
HotSpace 1.8之前
永久代
存储方法参数和方法局部变量,它的大小是固定的,在编译期大小确定。
HotSpace 1.8开始
新生代
本地方法栈:
程序计数器Program Count Register
存储当前线程执行方法的数据、指令、返回地址等。
java内存模型Java Memory Model
方法区:
元空间
操作数栈
程序计数器:
操作数栈就是JVM执行引擎的一个工作区。比如一个加法运算,先入栈两个运算数,遇到加号,将数出栈,运算结果入栈。
返回地址
是栈内分配的用于记录调用函数的非静态局部变量、参数、返回地址的基本单元,它的大小不固定。每执行一个方法时就会创建一个栈帧(Stack Frame)
JVM Running Data Area
栈 Stack
局部变量表
存储常量、静态变量、类信息、JIT,是线程共享的区域。
虚拟机栈JVM Stack
堆:
堆Heap
老年代
一个指向运行时常量池该帧栈所属方法的引用,持有这个引用是为了支持动态链接。常量池中的符号引用在运行期间转化为直接引用称为动态链接。在类加载或第一次使用时转换为直接引用称为静态解析
1、执行引擎在遇到方法中返回的字节码指令,2、发生异常返回
本地方法栈Native Stack
堆内存用于存放由new创建的对象和数组,成员变量等,是垃圾回收的主要区域,也是JVM管理的内存中最大的区域。是所有线程共享的区域。
存储本地native方法的调用状态
文本
栈帧 Stack Frame
0 条评论
下一页
为你推荐
查看更多