Person p = new Person()

  1. JVM会先去方法区中寻找相应类的.class文件(即Person.class),若存在则加载到内存中(如果该类存在父类,则先加载父类),不存在则将相关.class加载到方法区中
  2. 如果 p 定义在主方法中,则会在栈空间开辟一个变量空间 p
  3. 在堆内存给对象分配空间
  4. 对对象中的成员进行默认初始化(int = 0,String = null,即将内容设置为默认值)
  5. 对对象中的成员进行显示初始化(手工赋予初值)
  6. 对对象进行构造代码块初始化(如果没有就不执行)
  7. 调用构造方法对对象进行初始化。此时对象初始化完毕
  8. 将内存地址赋值给栈内存中的 p 变量
原文地址:https://www.cnblogs.com/huaranmeng/p/12594784.html