先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关。
public class Test {
private static int num = 3;
private static int number=10;
static {
num = 2;
number = 20;
}
// private static int number=10;
public static void main(String[] ars) {
System.out.println(Test.num);
System.out.println(Test.number);
}
}
//打印结果为
2
20
把上面number注掉,下面开启
public class Test {
private static int num = 3;
// private static int number=10;
static {
num = 2;
number = 20;
}
private static int number=10;
public static void main(String[] ars) {
System.out.println(Test.num);
System.out.println(Test.number);
}
}
//输出结果
2
10