*面向对象:当创建一个新对象时JVM做了三件事情如下
如当创建p对象时:
Person p = new Person();
1.JVM在栈内存中创建了一个引用类型的变量p;
2.在堆内存中为对象开辟了内存空间,且调用了构造方法,为成员变量赋初值;
3.将堆类存中的地址赋值给了p.
如下图所示(当然JVM还有程序计数器区和本地方法栈我只画了用到的三个区):

如当创建p对象时:
Person p = new Person();
1.JVM在栈内存中创建了一个引用类型的变量p;
2.在堆内存中为对象开辟了内存空间,且调用了构造方法,为成员变量赋初值;
3.将堆类存中的地址赋值给了p.
如下图所示(当然JVM还有程序计数器区和本地方法栈我只画了用到的三个区):