一个对象的内存信息(3)

对象的创建

  • 对象的序列化或者克隆都是调的new
  • 查看类的信息是否在方法区中,并且已经加载、解析、初始化过
  • 确定对象的内存大小,类的信息算出来
  • 分配内存:
    • 指针碰撞:适用规整的内存空间,直接执行后移
    • 空闲列表:不规整的,需要维护空闲列表,分配,hotspot默认方式
  • 为了减少竞争条件,每个线程都有一个TLAB,只有TLAB分配完了,才去堆中申请新的TLAB内存空间(启发:生成分布式ID的方式)
  • 设置对象的头部信息,调用init初始化对象

对象的内存信息

  • 头对象
    • 存储hashcode、分代年龄、对象锁、类型指针等
  • 实例数据:对象变量数据
  • 对其填充:8字节整数倍,利于管理22

对象的访问定位

  • 句柄:2次引用,对象移动时,不需要修改线程本地变量表
  • 直接指针:1次引用,速度快,hotspot默认方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值