JVM--基础--15--JVM对象的访问定位

JVM–基础–15–JVM对象的访问定位


1、主流的访问方式有两种

  1. 使用句柄访问
  2. 使用直接指针访问

2、使用句柄访问

  1. Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址
  2. 句柄中包含了对象实例数据与类型数据的具体各自的地址信息。

JVM--基础--15--JVM对象的访问定位_第1张图片

2.1、句柄来访问的最大好处

就是reference中存储的是稳定句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为)时只会改变句柄中的实例数据指针,而reference本身不需要被修改。

3、使用直接指针访问

Java堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,reference中存储的直接就是对象地址。

JVM--基础--15--JVM对象的访问定位_第2张图片

3.1、直接指针来访问的最大好处

就是速度更快,它节省了一次指针定位的时间开销,由于对象访问的在Java中非常频繁,因此这类开销积小成多也是一项非常可观的执行成本。

4、HotSpot的对象访问方式

虚拟机HotSpot 是 使用直接指针 进行对象访问

​​

你可能感兴趣的:(JVM,java,开发语言)