如果之前没有进行类加载
1.类加载,(java -cp xx.xx.xx,Class.forName/load)
同时初始化类中静态的属性(赋默认值)
2.执行静态代码块(只执行一次,属于类)
//如果之前做过类加载,从第三步开始执行
3.分配内存空间,同时初始化非静态的属性(赋默认值)
4.调用父类构造器
5.父类构造器执行完后,如果自己声明属性的同时有显示的赋值,那么进行显示赋值把默认值覆盖
6.执行匿名代码块(匿名代码块会在每次调用构造器时执行,可以有多个匿名代码块,从上到下依次执行)
7.执行构造器
8.返回内存地址