在学习完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 Github Hexo IDEA JavaScript jsDeliver JS樱花特效 JVM Linux Live2D markdown Maven MyBatis MyBatis-plus MySQL Navicat Oracle Pictures QQ Sakura SEO Spring Boot Spring Cloud Spring Cloud Alibaba SpringMVC Thymeleaf Vue Web WebSocket Wechat Social WordPress Yoast SEO 代理 分页 图床 小幸运 通信原理

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