JVM层面的对象相关知识

对象的创建

对象的创建具体流程如下
对象的创建

对象的内存布局

对象的内存布局

对象的访问方式

创建对象的目的是为了使用对象,使用对象的前提是找到对象
在栈帧的局部变量表中存在一种对象引用的reference类型,但并没有定义通过什么方式去定位对象;也就是说,我们知道通过reference类型可以找到对象的位置,但没有定义它是如何、通过某种方式来寻找对象的。

主流的访问方式有两种:句柄访问直接指针访问
句柄访问如下:
句柄访问
优势:在垃圾回收时,对象可能会被移动(标记-复制、标记-整理),此时只需改变句柄池中的对象实例数据的指针即可,reference无需改变,因为它指向的是句柄池的地址。

直接指针访问如下:
直接指针访问
优势:速度快,因为节省了一次指针定位的时间开销。
注:发生GC时,对象的移动会导致reference的值被修改。HotSpot主要使用直接指针访问。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值