Object obj = new Object();

      1.object obj 将会出现在java虚拟机栈的本地变量表中,以引用的类型出现。

       2.new Object()  会在java堆中开辟一块内存,用来存放Object类型的所有实例数据,还必须包括能查到此对象类型(对象类型,父类,方法等)数据的地址,这些信息存放在方法区中。

       java引用访问对象的两种方式:

       1.使用句柄

             深入理解java虚拟机(二) 对象访问

                在java堆中划分一块区域用作句柄池,java在虚拟机栈中存放的引用类型里面是对象的句柄地址,句柄里面包含了对象实例数据和对象数据的具体地址。

        2.直接指针

              深入理解java虚拟机(二) 对象访问

              java堆里面放置对象实例数据和对象类型的数据地址。

              hotspot里面使用的是直接指针的方式。

              这两种方式各有优势,句柄方式优点是引用里面是稳定的地址,对象地址改变只用改变句柄里面的地址就行了。直接指针的方式的优点是快,效率高。

 

相关文章:

  • 2021-12-04
  • 2021-07-23
  • 2021-06-28
  • 2021-08-06
  • 2022-01-06
  • 2021-08-22
  • 2021-07-17
  • 2021-10-12
猜你喜欢
  • 2021-12-20
  • 2021-11-02
  • 2021-08-31
  • 2021-08-07
  • 2021-05-13
  • 2022-12-23
  • 2021-09-26
相关资源
相似解决方案