静态成员/方法和全局范围
Static member/ methods and Global scope
在Java中,没有全局作用域。
那么静态成员是如何存储的?
静态方法(实际上是所有方法)存储在PermGen/metaspace中,静态字段存储在堆上每个class的特殊对象中,因为它们是反射数据的一部分(class 相关数据,与实例无关)。
如果您的静态变量是对对象的引用,则该对象本身存储在堆的正常部分(young/old 代或幸存者 space)。这些对象(除非它们是像 classes 等内部对象)不存储在 PermGen space.
在Java中,没有全局作用域。 那么静态成员是如何存储的?
静态方法(实际上是所有方法)存储在PermGen/metaspace中,静态字段存储在堆上每个class的特殊对象中,因为它们是反射数据的一部分(class 相关数据,与实例无关)。
如果您的静态变量是对对象的引用,则该对象本身存储在堆的正常部分(young/old 代或幸存者 space)。这些对象(除非它们是像 classes 等内部对象)不存储在 PermGen space.