对象创建的过程。
1,先在方法中创建栈空间,再在堆中创建对象,并对自己的成员变量赋值级代码块(基本数据的默认值)
2,对象调用自己的构造方法,构造方法进栈运行。
3,对象内存地址传递给this关键字。赋值操作等等。
4,构建方法运行结束,整个对象建立完成。
子类父类内存的创建过程。
1,创建子类对象,子类对象在同上创建,但划分两个区域储存。
2,子类对象一个区域留给父类,一个留给自己。
3,先实例化父类区域,完成父类区域赋值以及代码块的初始。
4,实例化子类区域,完成子类区域的事,
5,调用构造方法,进入父类构造方法,在进入子类构造方法。
6.构造方法结束,完成对象建立。
静态代码块在初始的时候第一步分配的时候直接执行并且只执行一次。
所以初始化的顺序。
总体是父类先于子类。
static代码块在最前面,且只执行一次。
代码块中或者属性的初始化(赋值),看代码书写先后顺序。
构造器,父类无参构造器然后子类构造器。
完成初始化。