建立对象就是为了使用对象,我们的Java程序需要通过栈上的reference 数据来操作堆上的具体对象。由于reference类型在Java虚拟机中只规定了一个指向对象的引用,并没有定义整个引用应该如何去定位,访问堆中的对象的具体位置。所以对象访问方式取决于虚拟机实现而定的。目前主流的访问方式有使用句柄和直接指针两种。
一:句柄:是间接访问对象实例数据的一种方式:采用句柄池的方式。
存放的是:到对象实例数据的指针,然后通过到对象实例数据的指针,访问Java堆中实例池中的对象实例数据。
优势:reference存储的是稳定的句柄地址。在对象移动时只会改变句柄中的实例数据指针。
二:直接指针访问:
优势:速度更快。节省了一次指针定位的时间开销。