首页 > 其他 > 详细

二、在java中,对象是如何访问的呢? --- 对象的访问

时间:2014-03-03 16:06:44      阅读:336      评论:0      收藏:0      [点我收藏+]

 

如下一句代码:

  Object obj = new Object();

bubuko.com,布布扣

 

可以用一图表明:对象的引用放到了栈 里,对象的实例存储在堆里。

 

引用类型只规定了一个指向对象的引用。那它是如何通过这个引用找到在java堆中对象的实例呢?

 

不同的虚拟机有不同的方式。主流的有两种:

 使用句柄

bubuko.com,布布扣

 

在java堆中开辟了一块内存作为句柄池。reference 类型存储的是对象的句柄地址,

句柄中包含了对象实例的指针。

 

直接使用指针

 

bubuko.com,布布扣

 

 

可以看到的是reference 中直接就存储了对象的地址。

 

 

各自的优势比较:

 

  一、句柄方式最大的好处就是在对象改变位置的时候(这种情况在垃圾回收时是常有的),reference的句柄地址不需要改变。只会更改句柄的对象实例的指针。

二、直接使用指针最大的好处就是速度更快。因为它可以一步定位到实例对象。

 

就大范围使用情况来说,直接使用指针的方式是十分常见的。

二、在java中,对象是如何访问的呢? --- 对象的访问,布布扣,bubuko.com

二、在java中,对象是如何访问的呢? --- 对象的访问

原文:http://www.cnblogs.com/pan2011/p/3577143.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!