代码块
定义在类中,类似一个没有名称的方法体,代码块分实例代码块和静态代码块
因为代码块没有名字,只能在满足条件时,自动被系统调用
实例代码块
每次创建对象时自动调用
代码如下:
{
System.out.println("实例代码块1");
}
{
System.out.println("实例代码块2");
}
静态代码块
类加载时自动调用,仅一次,与是否创建对象无关
代码如下:
static {
System.out.println("静态代码块1");
}
static {
System.out.println("静态代码块2");
}
实例
代码如下:
public class Test {
{
System.out.println("实例代码块1");
}
{
System.out.println("实例代码块2");
}
static {
System.out.println("静态代码块1");
}
static {
System.out.println("静态代码块2");
}
}
public class Test_test {
public static void main(String[] args) {
Test a=new Test();
}
}
运行结果:
如果有多个实例代码块或者多个静态代码块,他们会按照先后顺序执行,实例代码块先于构造方法执行