java中何时为静态变量分配内存?
类的所有对象共享静态变量。 但是什么时候为静态变量分配内存?是在为类创建第一个对象时吗?或者它是在创建类的任何实例之前发生的?java中何时为静态变量分配内存?,java,memory-management,static,Java,Memory Management,Static,类的所有对象共享静态变量。 但是什么时候为静态变量分配内存?是在为类创建第一个对象时吗?或者它是在创建类的任何实例之前发生的? 实例变量也是在运行时分配的内存。静态变量的内存在运行时或编译时分配?当类在运行时加载时。您可以找到详细信息。当类加载器加载该类时,将为所有静态变量分配memeory,并且只执行一次这是一个实现详细信息。您是否有一个特定的实现或保证您想知道?它是。在创建第一个对象之前(您可以访问静态字段/方法,而无需创建此类的实例)。我的直觉告诉我,这些都是在类加载时分配的。这正是您想要
实例变量也是在运行时分配的内存。静态变量的内存在运行时或编译时分配?当类在运行时加载时。您可以找到详细信息。当类加载器加载该类时,将为所有静态变量分配memeory,并且只执行一次这是一个实现详细信息。您是否有一个特定的实现或保证您想知道?它是。在创建第一个对象之前(您可以访问静态字段/方法,而无需创建此类的实例)。我的直觉告诉我,这些都是在类加载时分配的。这正是您想要知道的一个小细节:类的所有对象都共享静态变量。这是一种误解。静态字段属于类,而不是实例。但是,您可以从类的实例访问它们。通过此视图,可以直观地看到,在加载类时会分配静态字段