静态初始化块和实例初始化块有什么区别?
区别总结:
静态初始化块用于对静态成员进行初始化,只执行一次。实例初始化块用于对实例成员进行初始化,每次创建实例时执行。
静态初始化块在类加载时执行,实例初始化块在每个构造函数之前执行。
静态初始化块使用 static 关键字修饰,实例初始化块没有任何修饰符。
静态初始化块没有参数,不能被显式调用,且不能被继承或重写。实例初始化块可以有参数,不能被显式调用,且不能被继承或重写。
需要注意的是,静态初始化块和实例初始化块都只在类加载和实例创建过程中执行初始化操作,而不是在每次方法调用时执行。