Java虚拟机 —— 内存

java虚拟机

内存区域

在这里插入图片描述

对象创建

  1. 类 是否存在方法区的常量池中;不存在,则执行类加载过程
  2. new:内存分配
  3. 初始化零值
  4. 必要的设置(哪个类的实例、如何查询元数据信息)
  5. () : 初始化(构造)

对象的内存布局

  1. 对象头(Header)
    • 运行时候对象数据
    • 类型指针
  2. 实例数据(Instance Data)

    各种类型的字段

  3. 对齐填充(Padding)

    不一定存在,只是占位符。任何对象的起始地址必须是8字节的整数倍。