rockcoder23 / blog.fexnotes.com

欢迎watch & star
http://www.fexnotes.com
1 stars 0 forks source link

jvm中对象的访问方式 #6

Closed rockcoder23 closed 6 years ago

rockcoder23 commented 9 years ago

在不同的的jvm中,实现对象的访问方式会有所不同,其中主流的访问方式有两种:使用句柄和直接指针。

1. 句柄方式:

jvm会在堆中划分一部分内存存放句柄,称为句柄池,reference引用存储着句柄的地址,而句柄中包含了对象实例数据的指针和对象类型数据指针(指向方法区中对象类型信息)

句柄方式

使用句柄方式的优点是,reference中存放的是句柄的地址,堆中对象移动后,句柄地址变化,而reference中的内容不变。

2. 直接指针方式:

在直接指针方式中,reference中直接存放着对象的地址,而对象中存放着对对象类型数据的指针。

直接指针方式

直接指针方式的优点是访问速度比句柄方式快,因为减少了一次指针的定位的开销。这在java中对象访问频繁的情况能节约很大的执行成本。Sun HotSpot 使用的是直接指针方式。

rockcoder23 commented 9 years ago

add blog