JVM面试题整理

1.对象的结构?

     对象头

     指针

     实例数据

     填充数据

2.Object o = new Object()占用几个字节

      new Object()在堆中存储,对象结构为对象头,指针,实例数据,填充数据

     假设在64位机器上,对象头占用8字节,指针占用8字节,实例数据位0,填充数据为0

      new Object()占用了总共16字节。

      格外情况:当开启指针压缩情况下,指针占用为4字节(也就是32位),此时加上对象头8字节,一共12字节,由于内存中寻址的原因,通常会进行填充,是按照8位进行填充,也就是8的倍数,即填充数据中占用也是4字节,结论为对象头8字节,指针4字节,填充数据为4字节。

     Object o存储在栈中,在64位机器中占用8byte,通常开启压缩也就是4字节。

      总结果 :8+16=24字节或者4+16 = 20字节。

    

     在32位机器上,对象头占用32位即4字节,指针4字节,也就是8字节。此时就没有压缩的可能了。

同时 Object o占用的4字节,总共也就是4+8=12字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值