对象的访问基础
Object obj = new Object();
Object obj是保存在java栈的本地变量中,而new Object()这部分则会反映道java堆中,形成一块存储了Object类型所有实例的数据值结构化内存。在这块堆中,必须含有能够查找到此对象类型数据(对象类型,父类,接口,方法等)的地址信息,这些类型的数据保存在方法区中。
reference类型在java虚拟机规范中只规定了一个指向对象的引用,并没有定义这个引用通过何种方式去定位,不同的虚拟机有不同的定位方式,主流的定位方式有两种:
一、句柄访问
java堆中划分一块内存来作为句柄池,reference中存储的对象就是句柄地址,而句柄中包含了对象实例和类型数据各自的具体地址信息。
二、直接指针访问的方式
引用中存储的就是对象的地址。