在Java中,static代码块(也称为静态代码块或静态初始化器)在类被加载到JVM(Java虚拟机)时执行。具体来说,当以下几个条件满足时,static代码块会被执行:
类被加载到JVM中:当一个类被首次引用或者显式地使用Class.forName()
方法加载到一个JVM实例时,该类就会被加载。
类中的静态变量被初始化:在类被加载后,如果类中的静态变量被赋值,那么对应的静态代码块会被执行。静态变量的初始化顺序是根据它们在类中的声明顺序。
static代码块只执行一次:当一个类被加载并初始化后,其静态代码块只会执行一次。这意味着,无论创建了多少个该类的实例,静态代码块都只会执行一次。
总结一下,static代码块的执行时机是在类被加载到JVM时,且仅执行一次。静态代码块通常用于初始化静态变量和执行一次性的初始化任务。