在学习完Java虚拟机的各部分结构,我们就要去理解当我们创建一个对象,它的过程以及内内分布的情况,即 理解对象的创建和内存空间分配过程 。这是对JVM知识的进一步认识,我们不仅要做到会写代码,还要知道底层运作,这样有利于对于JVM的优化。

对象的创建步骤

理解对象的创建和内存空间分配过程

由上图可知对象的创建主要分为6个步骤:

  1. 判断对象是否以已经加载、链接、初始化
  2. 为对象分配内存(考虑内存是否规整)
  3. 处理并发安全问题(CAS+失败重试保证更新的得原子性)
  4. 初始化分配的空间(所有属性设置默认值)
  5. 设置对象的对象头
  6. 执行int方法进初始化(init对应类的构造方法)

对象的内存布局

理解对象的创建和内存空间分配过程

创建对象

下面的简单一段代码

package object;

public class Customer {
    int id =100;
    String name;
    Account acct;
    {
        name="匿名客户";
    }
    public Customer{
        acct=new Account();
    }

    public static void main(String[] args) {
        Customer customer = new Customer();
    }
}
class Account{

        }

内存布局

理解对象的创建和内存空间分配过程

标签云

ajax AOP Bootstrap cdn Chevereto CSS Docker Editormd GC Hexo IDEA IPA JavaScript jsDeliver JS樱花特效 JVM Linux markdown Maven MyBatis MyBatis-plus MySQL Pictures QQ Sakura SEO shadowrocket Spring Boot SpringMVC SSR Thymeleaf V2ray Vue Web WebSocket Wechat Social WordPress Yoast SEO 代理 分页 图床 小幸运 苹果iOS国外账号 苹果IOS账号 通信原理

理解对象的创建和内存空间分配过程
理解对象的创建和内存空间分配过程