实例初始化块用于初始化类的对象。分为实例初始化块和静态初始化块。其中在一个对象编译的过程中,静态初始化块只在类加载的时候被初始化一次,并且是初始化内容存在堆的方法区(元空间)中,而实例化代码块,则是在对象被实例化的时候调用。
静态代码块:
使用static关键字来定义“静态代码块”
语法格式:
static{
Java语句;
}
静态代码块:
使用static关键字来定义“静态代码块”
语法格式:
static{
Java语句;
}
一个实例初始化程序只是一个类的代码块,但在任何方法或构造函数之外。 实例初始值设定程序没有名称。它的代码只是放置在一个开放大括号和闭包。代码块的执行根据由上至下的顺序一次执行,所以一般只建立一个代码块。
下面的代码展示了如何为Test类声明一个实例初始化器。
注意:实例初始化程序在实例上下文中执行,并且关键字this在实例初始化程序中可用。
class Test {
private int num;
// An instance initializer
{
this.num = 101;
/* Other code for the instance initializer*/
}
/* Other code for Test class*/
}