参考文章:
https://www.zhihu.com/tardis/sogou/art/187019875
Java的类初始化和实例初始化过程及功能不一样
类由类加载器加载之后,会执行类的初始化,类的初始化主要是为类变量(静态变量)分配内存并赋值,然后执行类的静态方法。
如果后期有使用到该类,需要对类进行实例化,那么就会先执行类的普通方法(没有方法名,只有一对{}包裹的代码块),然后执行类的实例变量的初始化,然后再执行类的构造方法。
所以类中各代码的执行顺序是:
父类静态变量,父类静态方法,子类静态变量,子类静态方法,父类实例变量,父类普通方法,父类构造方法,子类实例变量,子类普通方法,子类构造方法
其中实例变量,普通方法跟构造方法,类每实例化一次,就会执行一次设置值,执行普通方法及构造方法






网友评论