当我执行这个程序时,它只打印验证作为输出。但是一些文档说静态块将在类加载时首先执行。我无法理解。任何人都可以帮助我。
public class Threading {
static void test(){
System.out.println(" Inside static block ");
}
public static void main(String[] args) {
System.out.println("verification ");
}
}
输出: - 核实
答案 0 :(得分:4)
您使用的是静态方法而不是静态块。 将您的代码更改为:
static {
System.out.println(" Inside static block ");
}
并执行..静态方法应该显式调用以执行它。当一个类初始化时,它不会被执行。
PS:静态块在初始化类时执行,而不是在加载时执行。您可以使用Class.forname()
来检查。布尔标志initialize
(作为方法的参数传递)将指定是加载类还是两者加载和初始化它。