java中的静态变量什么时候分配内存?

When is the memory allocated for a static variable in java?

一个class的所有对象共享静态变量。 但是什么时候为静态变量分配内存呢?是在为 class 创建第一个对象时吗?还是甚至在创建 class 的任何实例之前就发生了? 实例变量也在运行时分配内存。静态变量的内存是在运行时分配还是编译时分配?

当 class 加载时,在运行时。您可以找到详细信息 here.

当 class 加载程序加载 class 时,将为所有静态变量分配内存,并且只会分配一次