初始化块
开发工具与关键技术:MyEclipse 10、Java
撰写时间:2019-04-23
作者:潘玉莹
初始化的定义
-
不使用static修饰符的是初始化块
a) 初始化块相当于是对构造器的补充,用于创建对象时给对象的初始化,在构造器之前执行
b) 如果一段初始化代码所有构造器完全想相同,并且无需接收参数,那就可以将其提取到非静态初始化中
c) 实际上,经过编译后,非静态块已经添加构造器中,并且位于所有构造器代码的前面 -
使用static修饰符的是静态修饰符
a) 静态初始化块用static修饰,又叫类初始化
b) 静态初始化块赋值对类进行初始化,因此类初始化块在类初始化就执行
c) 静态块跟静态方法一样,不能访问非静态成员
d) 因为静态块是在类初始化块阶段完成的,因此在创建某个类的第二个对象时,该类的静态块就不会执行了
单个类中初始化块、静态初始化块、构造器的执行速度
静态初始化块 > 初始化块> 构造器执行 如图所示
多个类的继承中初始化、静态初始化块、构造器是执行的速度
在继承中,先执行父类A的静态块,父类B的静态块,最后子类的静态块,最后在执行父类A的非静态块和构造器,然后是B类的非静态块和构造器,最后子类的非静态块和构造器;如图所示