JVM
2021-07-16 17:42:17 0 举报
基于HotSpot虚拟机 运行时数据区,栈帧,对象内存分布
作者其他创作
大纲/内容
堆Heap
栈帧N
returnAddress
进程(Process)
运行时常量池Runtime Constant Pool
方法出口信息
程序计数器Program Counter Register
Thread2
本地方法栈(C栈)Native Stack
线程私有
虚拟机栈VM Stack
方法区Method Area
线程共享
对象头可能包含类型指针,通过该指针能确定对象属于哪个类。如果对象是一个数组,那么对象头还会包括数组长度
哈希码、GC 分代年龄锁状态标志、线程持有的锁偏向线程 ID、偏向时间戳
对齐(可选)按8字节对齐
元空间MetaSpace
实例数据
对象内存分布
八大原始类型
当前栈帧
局部变量表
对象头
……
Thread1
栈帧1
栈帧0
MarkWord4字节
确保对象的总长度为 8 字节的整数倍
运行时数据区(HotSpot)JDK1.8
成员变量的值,其中包括父类成员变量和本类成员变量
动态链接
JVM运行时数据区,栈帧,对象内存分布全部基于HotSpot虚拟机
对象实际数据实际数据大小
直接内存Direct Memory
操作数栈
对其填充
Class对象指针4字节
运行时数据区(HotSpot)JDK1.6
对象引用
收藏
0 条评论
下一页