高新星 发表于 2013-5-4 21:25
在内存图中的0是指默认值为0马?
可以已经有给定的初始化值,还会有默认初始化值,马?? ...
对象的初始化过程:
Person p = new Person();//到底在内存中做了什么?
1,将Person.class文件加载进内存。
2,p定义函数中,那么在栈内存中开辟一个变量空间p。
3,在堆内存中给对象分配空间,并分配内存地址值
4,给对象中的属性进行默认初始化。
5,给对象中的属性进行显示初始化。
6,调用构造代码块对对象进行初始化。(执行类中的构造代码块)
7,调用对应的构造函数进行对象初始化。对象初始化完毕。
8,将对象内存地址赋值给p变量。让p变量指向该对象。
会先有个显示默认在有显示初始化的。。。 |