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