当前位置: 技术问答>java相关
那位大虾给讲讲什么叫:Static Initializer Block
来源: 互联网 发布时间:2015-10-16
本文导语: 谢谢! | 是静态初始化器 static关键字引导的一对大括号括起来的语句组。 作用:完成初始化工作。 与构造函数不同: ① 构造函数是对每个新创建的对象初始...
谢谢!
|
是静态初始化器
static关键字引导的一对大括号括起来的语句组。
作用:完成初始化工作。
与构造函数不同:
① 构造函数是对每个新创建的对象初始化 ,而静态初始化器是对每个类进行初始化。
②构造函数是在用new运算符产生新对象时系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用运行的。
③构造函数是特殊的方法,而静态初始化器不是方法,没有方法名、返回值、参数列表。
static关键字引导的一对大括号括起来的语句组。
作用:完成初始化工作。
与构造函数不同:
① 构造函数是对每个新创建的对象初始化 ,而静态初始化器是对每个类进行初始化。
②构造函数是在用new运算符产生新对象时系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用运行的。
③构造函数是特殊的方法,而静态初始化器不是方法,没有方法名、返回值、参数列表。
|
Java允许我们将其他static初始化工作划分到类内一个特殊的“static构建从句”(有时也叫作“静态块”)里。它看起来象下面这个样子:
class Spoon {
static int i;
static {
i = 47;
}
// . . .
尽管看起来象个方法,但它实际只是一个static关键字,后面跟随一个方法主体。与其他static初始化一样,这段代码仅执行一次——首次生成那个类的一个对象时,或者首次访问属于那个类的一个static成员时(即便从未生成过那个类的对象)。
class Spoon {
static int i;
static {
i = 47;
}
// . . .
尽管看起来象个方法,但它实际只是一个static关键字,后面跟随一个方法主体。与其他static初始化一样,这段代码仅执行一次——首次生成那个类的一个对象时,或者首次访问属于那个类的一个static成员时(即便从未生成过那个类的对象)。
|
execute just once when the class is initialized.
usually used to initialize static variable ,load external libraries for native methods.
usually used to initialize static variable ,load external libraries for native methods.