不得不说,各种开发语言关于内存管理这一块是个很重要的知识难点,能够从内存上理解,对于加深知识牢记是大有帮助的,下面这个是new创建一个对象的时候,在内存里发生的有顺序的事儿:
有了构造代码块程序执行顺序和源码顺序也有关系
1,将Person.class文件加载进内存。
2,p定义函数中,那么在栈内存中开辟一个变量空间p。
3,在堆内存中给对象分配空间,并分配内存地址值
4,给对象中的属性进行默认初始化。
5,给对象中的属性进行显示初始化。
6,调用构造代码块对对象进行初始化。(执行类中的构造代码块)
7,调用对应的构造函数进行对象初始化。对象初始化完毕。
8,将对象内存地址赋值给p变量。让p变量指向该对象。