Java的初始化块
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:MyEclipse10,Java
作者:陈显其
撰写时间:2019年06月27日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Java的初始化块分为两种,没有被static修饰的,叫初始化块,被static修饰的初始化块叫静态初始化块,
初始化块一般放在构造函数之前,使用大括号 {} 扩起来的代码,初始化块会在创建一个类的实例对象的时候时执行,构造器执行是在初始化块执行完了之后再进行的,它是对构造器的补充。初始化块不是类必须要的,而且可以存在多个初始化块。
静态初始化块在类加载的时候去执行的,并且只会执行一次,静态初始化块负责对类进行初始化,静态块跟静态方法一样,不能访问非静态成员,静态初始化块比初始化块更早执行
初始化块和静态初始化块在一个类中的时候的执行顺序是先从静态初始化块开始,有多时就从上往下执行,然后到初始化块,也是多个时从上往下执行,然后到构造器,到方法,
在多个类继承时的执行顺序是先执行最上面的父类A的静态代码块,然后到这个父类的子类B的静态代码块,然后到子类B的子类C的静态代码块,执行完所有的静态初始化块后,是A的非静态块和构造器,B的非静态块和构造器,C的非静态块和构造器