JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节

JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节

JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节


文章目录

  • JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节
  • 前言
  • Java对象创建的流程步骤包括哪些?
  • 总结


前言

JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节


Java对象创建的流程步骤包括哪些?

JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节_第1张图片

  • 虚拟机遇到一条new指令时,首先检查这个对应的类能否在常量池中定位到一个类的符号引用
  • 判断这个类是否已被加载、解析和初始化
    • 为这个新生对象在Java堆中分配内存空间,其中Java堆分配内存空间的方式主要有以下两种
    • 指针碰撞
      • 分配内存空间包括开辟一块内存和移动指针两个步骤
      • 非原子步骤可能出现并发问题,Java虚拟机采用CAS配上失败重试的方式保证更新操作的原子性
    • 空闲列表
      • 分配内存空间包括开辟一块内存和修改空闲列表两个步骤
      • 非原子步骤可能出现并发问题,Java虚拟机采用CAS配上失败重试的方式保证更新操作的原子性
    • 将分配到的内存空间都初始化为零值
    • 设置对象头相关数据
      • GC分代年龄
      • 对象的哈希码 hashCode
      • 元数据信息
    • 执行对象方法

总结

本文介绍了JVM零基础到高级实战之Java程序员不可不知的对象创建底层步骤细节的全部内容,后续我会不断更新,喜欢的请点击关注,JVM系列将会持续更新下去。

你可能感兴趣的:(jvm,java,开发语言)