创建一个类会在内存中做出以下事情!
1.先把字节码文件*.class文件加载进内存中。
2.方法和静态属性定义在方法区中。
3.静态代码块初始化(有的话)
4.在堆内存中开辟空间,分配地址值。
5.在堆内存中创建对象,并进行默认初始化。
6.对属性进行显示初始化。
7.构造代码块初始化。
8.构造函数初始化。
9.内存地址值分配给类变量。
LZ提到的堆内存初始化是此过程的步骤5而已,构造函数初始化和此初始化都是建立一个对象不能缺少的步骤。
具体为什么不能缺少,其实我也不大清楚,恳请大神解答!
2L的意思是构造函数会调用构造器,着我不大清楚,我有空查查吧! |