java对象的访问定位

java对象的访问定位主要有两种方式:

  • 直接指针
    • 使用直接指针的话,reference(对象的引用)中存储的就是对象的地址,此时对象中就要存储到对象类型数据的指针了。这种方式的好处就是访问对象比较快。 

             java对象的访问定位

  • 句柄池
    • 使用句柄访问的话,两次寻址,Java堆中划出一块内存存储句柄池,引用中存储的是句柄的地址,而句柄中存储了到对象实例数据和到对象类型数据的指针。其好处是稳定,因为reference(对象的引用)中存储的是句柄的地址,所以当对象移动(因为垃圾回收等)时只需要修改句柄中到对象实例的指针即可,reference(对象的引用)并不需要变动,缺点是需要多一次寻址

​​​​​​​               java对象的访问定位