Java虚拟机——对象访问
以下面这句代码为例
Object obj = new Object()
Object obj这部分反映到Java栈的本地变量表;
new Object()这部分反映到Java堆,存储Object类型所有实例数据值的结构化内存;
Java虚拟机实现的对象访问方式主要有两种:使用句柄和直接指针
1、句柄访问方式,Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据uhe类型数据各自的具体地址信息。如下图所示。
2、直接指针访问方式,Java堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,reference中直接存储的就是对象地址,如下图所示。