1、优先级:静态代码块>构造代码块>构造函数>普通代码块
public class StaticDemo {
//构造代码块
{
System.out.println("我是构造代码块!");
}
//静态代码块
static{
System.out.println("我是静态代码块!");
}
//静态方法
static void demo(){
System.out.println("我是静态方法!");
}
//构造函数
public StaticDemo(){
System.out.println("我是构造方法!");
}
public static void main(String[] args) {
StaticDemo demo = new StaticDemo();
demo.demo1();
System.out.println("这是普通代码!");
{
System.out.println("我是普通代码块!");
}
}
public void demo1(){
System.out.println("这是普通方法!");
}
}
执行结果是:
我是静态代码块!
我是构造代码块!
我是构造方法!
这是普通方法!
这是普通代码!
我是普通代码块!
从执行结果可以看出,静态代码块的优先级最高,然后才执行构造代码块,再执行构造函数,然后是普通代码块和普通方法就按位置先后顺序执行。