对象的访问定位:句柄与直接指针

来源:互联网 发布:海思 人工智能 编辑:程序博客网 时间:2024/06/05 03:24

对象的访问定位:句柄与直接指针

Java程序通过栈中的reference数据来操作堆上的具体对象,而对象的访问方式取决于虚拟机的实现。主流访问方式有句柄和直接指针两种

句柄方式

Java堆中将会划出一块内存来作为句柄池,reference对象存储的就是对象的句柄地址。句柄中包含了对象实例数据和类型数据的具体地址:

直接指针方式

reference对象直接存储对象地址:

两者对比

句柄

由于reference中存储的是稳定的句柄地址,在对象被移动时(如GC过程中的对象移动),只需改变句柄中实例数据指针,而reference本身不用动。

直接指针

速度快,节省了一次指针定位的时间开销。HotSpot采用此方式

0 0
原创粉丝点击