内存分区
程序计数器(线程私有)
Java虚拟机栈(线程私有)
本地方法栈(线程私有)
Java堆 (线程共享)
方法区(线程共享) 运行时常量池
对象创建
内存分配
指针碰撞(要求堆中内存规整)
空闲列表
内存空间初始化(不包括对象头)
设置对象头
执行<init>方法(程序员数据)
对象内存布局
对象头
对象自身运行时数据(哈希码,线程锁,GC分代年龄等)
类型指针(确定对象是哪个类实例)
实例数据(父类子类变量方法)
对齐填充(对象内存必须的8字节整数倍)
对象访问定位
句柄访问(堆上建句柄池,栈上reference存储句柄地址)(好处:对象移动时句柄地址稳定)
直接指针访问(
《深入理解java虚拟机》之内存管理
最新推荐文章于 2022-04-24 13:13:52 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)