Java对象的访问定位

Java对象的访问定位

我们在写代码中,所申明的变量,先不讲基本类型,所有申明对象,我们拿到的都是一个对象的引用 reference,那么我们的引用变量到底是如何访问和操作其对应的对象呢?

主要有两种方式 使用句柄,直接指针

    1 通过句柄访问

        使用句柄访问,Java堆中会划分出一块内存作为句柄池,reference中保存的是句柄的地址,而句柄中保存了对象实例数据和类元数据各自的具体地址信息。

通过句柄访问对象.jpg

    2 直接指针访问

        reference中保存的就是对象的地址了,此时,对象的内存布局中(对象头)必须保存类型数据的相关信息的访问地址。

直接指针访问.jpg