从类加载进内存到对象创建,各部分的执行顺序

一、加载代码时:

    1)、父类的静态代码块和静态属性按顺序执行。(静态方法只加载,不引用,不执行)

    2)、子类的静态代码块和静态属性按顺序执行。(静态方法只加载,不引用,不执行)

二、创建对象时:

           1)、在stack中创建对象名称(没有则无此步)。         2)、在heap中开辟对象空间。          3)、创建父类成员变量并默认初始化。
           4)、对父类成员变量进行显示初始化。      5)、父类构造代码块(非静态代码块)      6)、父类的构造函数
           7)、创建子类的成员变量并默认初始化。      8)、对子类对象进行显示初始化 。        9)、子类构造代码块(非静态代码块)。
           10)子类构造函数。

原文地址:https://www.cnblogs.com/soficircle/p/6613672.html