一、类的初始化过程
public class Test01 {
static {
System.out.println("静态代码块");
}
public static void method(){
System.out.println("静态方法。。");
}
{
System.out.println("代码块。。");
}
public Test01(){
System.out.println("构造器。。。");
}
public static void main(String[] args) {
new Test01();
System.out.println("===============");
new Test01();
}
}
运行结果:
静态代码块
代码块。。
构造器。。。
----------
代码块。。
构造器。。。
二、静态成员之间的执行顺序
1、静态代码块和静态成员变量优先于静态方法执行:
代码1:
public class Test01 {
static {
i=2;
System.out.println("静态代码块");
}
public static void method(){
System.out.println("静态方法。。");
System.out.println(i);
}
static int i=4;
public static void main(String[] args) {
Test01.method();
}
}
运行结果:
静态代码块
静态方法。。
4
2、静态成员变量和静态代码块是看它们在代码中的顺序,谁在前先执行
代码2:
public class Test01 {
static int i=4;
static {
i=2;
System.out.println("静态代码块");
}
public static void method(){
System.out.println("静态方法。。");
System.out.println(i);
}
public static void main(String[] args) {
Test01.method();
}
}
运行结果:
静态代码块
静态方法。。
2
通过代码1和代码2结合比较可看出:谁在前先执行