有些代码必须在项目启动的时候就执行,需要使用静态代码块。
一、特点:
随着类的加载而执行,而且只执行一次
二、什么是静态代码块
执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,而不能调用非静态成员变量和方法,即static修饰的数据成员。
静态代码块写法,
static{
}
三、注意:
1、一个类中可以定义多个静态代码块,静态代码块只会执行一次,而且如果有多个静态代码块,会一次全部执行完。
2、静态代码块在类中的成员变量、方法调用时会被调用(已经new一个新的类),用类去定义变量是不会调用。
比如说: staticBlock block;#这个是不会调用静态代码块
四、举例
public class staticBlock{
public static int testInt = 0;//外部调用这个时也会执行静态代码块
static()//这就是静态代码块
{
system.out.println("静态代码块一");
}
public staticBlock()//构造函数,可以带参数
{
}
static()//这就是静态代码块
{
system.out.println("静态代码块二");
}
}