【深入理解JVM】Java对象创建过程和对象内部结构

一、对象的创建过程

在这里插入图片描述

二、对象的内部结构(内存分配)

1、对象头

  • hashcode
  • GC分代年龄
  • 线程编号
  • 锁编号
  • 时间戳
  • 引用计数

2、实例数据

  存储所定义的各种类型字段内容,无论是从父类继承下来,还是在子类中定义的,都需要记录起来。

3、对齐填充

  起着占位符的作用,实例数据起始地址必须是8字节的整数倍,(对像的大小必须是8字节的整数倍)。

三、对象的访问

  通过栈上的reference引用数据来访问堆上的实例数据。

1、直接指针

  reference引用存储是对象地址,直接指向对象的实例数据,同时一个存储一个指向对象类型数据的指针。

2、句柄

  reference引用存储是句柄地址,句柄地址存储两个对象和类型数据两个指针,一个指向对象实例数据,一个指向对象类型数据。
在这里插入图片描述

发布了194 篇原创文章 · 获赞 1140 · 访问量 129万+

猜你喜欢

转载自blog.csdn.net/sinat_27933301/article/details/96726458