当我们第一次使用类时,静态代码是否总是执行的?
我们的应用程序使用的初始化代码取决于静态代码的执行顺序,我想知道这个顺序是否在所有JVM中都是一致的。
以下是我的意思示例:
public class Main {
static String staticVar = "init_value";
public static void main(String[] args) {
System.out.println(A.staticVar);
staticVar = "mainValue";
System.out.println(A.staticVar);
}
}
public class A {
static String staticVar = Main.staticVar;
}
将给予:
init_value init_value
和
public class Main {
static String staticVar = "init_value";
public static void main(String[] args) {
// System.out.println(A.staticVar);
staticVar = "mainValue";
System.out.println(A.staticVar);
}
}
public class A {
static String staticVar = Main.staticVar;
}
将给予(在我的环境中):
mainValue
总而言之,在所有 JVM 中,当我们第一次使用类时,静态代码是否总是执行的?