新建对象时,构造方法、变量、代码块执行顺序
2021-01-07 本文已影响0人
mua马
场景一:没有父类,或者不关心父类
静态成员(静态代码块、静态变量,按代码顺序执行)
非静态成员(非静态代码块、非静态变量,按代码顺序执行)
构造方法
场景二:有父类
父类静态成员(静态代码块、静态变量,按代码顺序执行)
子类静态成员(同上)
父类非静态成员(非静态代码块、非静态变量,按代码顺序执行)
父类构造方法
子类非静态成员(非静态代码块、非静态变量,按代码顺序执行)
子类构造方法
场景三:不关心父类,且静态成员中调用了构造方法
假设静态成员最多可分解为三句代码,按代码顺序分为1、2、3,其中2调用了构造方法,则执行顺序为:
静态成员1
静态成员2
非静态成员(非静态代码块、非静态变量,按代码顺序执行)
构造方法
静态成员3
注意
1、静态成员只在类初始化时执行一次
2、每创建一个对象,非静态成员和构造方法都会执行一次