执行顺序:静态代码块 -- 构造代码块 -- 构造方法
class Code {
// 静态代码块
static {
int x = 1;
System.out.println(x);
}
// 构造代码块
{
int x = 2;
System.out.println(x);
}
// 构造方法
public Code() {
int x = 3;
System.out.println(x);
}
// 构造代码块
{
int x = 2;
System.out.println(x);
}
// 静态代码块
static {
int x = 1;
System.out.println(x);
}
}
public class test {
public static void main(String[] args) {
Code c1 = new Code();
Code c2 = new Code();
}
}
执行结果
new了两个对象c1,c2 所以构造代码块和构造方法都执行了2次
静态是随着类的加载而加载 所以只执行了1次