1.栈:执行不同的方法
栈帧:执行的一个方法单位
虚拟机栈,native栈线程私有
jvm内存分布区:
栈帧的结构:
即时信息:高度jvm版本信
动态链接:支持方法动态调用的过程,符号引用变直接引用。
解析阶段:
动态链接:类似方法的具体确定,不关心具体哪个子类中,只要当前方法执行过程中,符号引用变直接引用。
程序计数器:
执行java方法,记录虚拟机指令的地址
执行native 记录为空
2.堆中java对象的结构
- 对象头
markword:记录哈希码,锁状态等,8字节
classpointer:执行对应类元数据的内存:8字节
数组对象特有:4个字节 - 实例数据
boolean 1 byte
char short 2
float,int 4
dubble 8 - 对齐填充:提高数访问效率
大段储存:方便数据类型转换
小段储存:符号判断
指针压缩 4《x<32