深入理解java虚拟机(二) 对象访问

Object obj = new Object();

      1.object obj 将会出现在java虚拟机栈的本地变量表中,以引用的类型出现。

       2.new Object()  会在java堆中开辟一块内存,用来存放Object类型的所有实例数据,还必须包括能查到此对象类型(对象类型,父类,方法等)数据的地址,这些信息存放在方法区中。

       java引用访问对象的两种方式:

       1.使用句柄

             

                在java堆中划分一块区域用作句柄池,java在虚拟机栈中存放的引用类型里面是对象的句柄地址,句柄里面包含了对象实例数据和对象数据的具体地址。

        2.直接指针

              

              java堆里面放置对象实例数据和对象类型的数据地址。

              hotspot里面使用的是直接指针的方式。

              这两种方式各有优势,句柄方式优点是引用里面是稳定的地址,对象地址改变只用改变句柄里面的地址就行了。直接指针的方式的优点是快,效率高。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值