jvm指针压缩

开启指针压缩,jdk1.6及之后默认开启
-XX:+UseCompressedOops ,开启压缩之后不仅压缩对象头中类型指针,也压缩对象

对象由三部分组成:
1.对象头
2.实例数据
3.对齐填充(保证对象是8个字节的整数倍)

对象头也由三部分组成:
1.MarkWord标记字段(32位占4个字节,64位占8个字节)。存储的都是自身运行时的数据: 对象的hashcode,GC的分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳等
2.KlassPointer类型指针(开启压缩占4个字节,关闭压缩占8个字节)
类的元数据的指针
3.数组长度(4字节,只有数组对象才有)

在pom.xml中引入如下依赖,可以通过代码获取对象头及对象所占空间的大小

<dependency>
            <groupId>org.openjdk.jol</groupId>
            <artifactId>jol-core</artifactId>
            <version>0.16</version>
</dependency>
ClassLayout classLayout3 = ClassLayout.parseInstance(new User[1]);
System.out.println(classLayout3.toPrintable());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值