Java 对象建立的流程

  1. Object obj = new Object();git

  2. 虚拟机遇到 new 指令程序员

  3. 检查指令的参数是否能在常量池中定位到一个类的符号引用github

  4. 检查符号引用是否已经被加载、解析和初始化。若是没有则进行类加载。学习

  5. 虚拟机为新生对象分配内存(对象所需的内存大小在类加载完就可肯定)ui

  6. 将分配到的内存空间都初始化为零值(不包括对象头)这一步操做保证了对象的实例字段在 Java 代码中能够不赋初始值就直接使用,程序能访问到这些字段的数据类型所对应的零值code

  7. 虚拟机对对象进行必要的设置,例如这个对象是哪一个类的实例、如何才能知道类的元数据信息、对象的哈希码、对象的 GC 分代年龄信息等等,这些信息都存放在对象的对象头(Object Header)之中。对象

    从虚拟机的视角来看,一个新的对象已经产生了,从 Java 程序角度来看,对象建立才刚刚开始内存

  8. 执行 new 指令以后会接着执行 方法,把对象按照程序员的意愿进行初始化 get

  9. 一个真正可用的对象才算彻底产生出来。虚拟机

想要了解更多的话,请移步本人的学习笔记,若是以为有帮助的话,请点一个star✨。

相关文章
相关标签/搜索