public class StaticCodeTest {
private static String str = "test";
static {
System.out.println(str);
}
public static void main(String[] args) {
System.out.println("####");
}
}
执行结果
test
####
参考https://www.jianshu.com/p/c12bfa6b0cb4
静态变量什么时候加载
①创建类的实例
②调用类的静态方法
③使用类的非常量静态字段
④调用Java API中的某些反射方法
⑤初始化某个类的子类
⑥含有main()方法的类启动时
https://blog.csdn.net/Mrzhoug/article/details/51581994
所以我的理解是
类的静态变量和静态代码块都在类初始化时候执行