Java对象的创建过程(博文参照深入理解Java虚拟机)

博文中讨论的对象仅限普通Java对象

Person person = new Person("小明");
  1. 虚拟机检查Person类是否已经被加载、解析和初始化过。如果没有,那必须先执行类加载过程
  2. 类加载检查通过后,接下来虚拟机为新生对象分配内存
  3. 虚拟机将分配到的内存空间(但不包括对象头)都初始化为零值,如果使用了TLAB(本地线程分配缓冲 Thread Local Allocation Buffer),这一项工作也可以提前至TLAB分配时顺利进行。
  4. 虚拟机设置对象头的信息:这个对象是哪个类的实例、GC分代年龄信息等信息存放在对象头中
  5. 执行Class文件中的()方法(类的构造函数),按照程序员的意愿对对象进行初始化,一个完整的可用的对象就构造出来了

你可能感兴趣的:(java)