对象访问

参考博文:
http://blog.csdn.net/kai_wei_zhang/article/details/8239537
算是对他的一点点补充。

object obj = new Object();

中“Object obj”这部分的语义会映射到Java栈的本地变量表中,作为一个reference类型的数据出现。
而“new Object()”会反应到java的堆中。

类与对象的存储

  • 实例数据值:对象中各个实例字段的数据。
    这部分存储在堆中。
  • 对象类型数据:对象类型,父类,实现的接口,方法等等
    这些类型数据存储在方法区中。

句柄访问方式

对象访问_第1张图片
句柄访问方式

在GC时,只需要删除到对象实例数据的指针即可,reference不用发生变化

直接指针访问方式

对象访问_第2张图片
直接指针访问方式

直接指针访问方式的好处是速度快,节省了一次指针定位的事件开销。
但是在GC是reference会发生变化。、

你可能感兴趣的:(对象访问)