看到这样一块代码,
想确认一下某类的静态方法被调用时,先执行改静态方法,还是静态代码块。
测试
NativeApplication.java
public class NativeApplication {
public static void load(){
System.out.println("[*] Inside load()");
}
static {
System.out.println("[*] Inside static block");
}
}
Main.java
public class Main{
public static void main(String[] args){
NativeApplication.load();
}
}
将这两个Java源文件放在同一目录下,然后编译Main.java
$ javac Main.java [15:56:49]
$ ls [15:56:53]
Main.class Main.java NativeApplication.class NativeApplication.java
然后执行。
$ java Main
从打印的结果可以得知,是先执行static代码块,然后再执行被调用的static方法。