静态成员/方法和全局范围



在Java中,没有全局作用域。那么静态成员是如何存储的?

静态方法(实际上是所有方法)存储在PermGen/metaspace中,静态字段存储在堆上每个类的特殊对象中,因为它们是反射数据的一部分(与类相关的数据,而不是与实例相关的数据)。

如果静态变量是对对象的引用,则对象本身存储在堆的正常部分(年轻/旧一代或幸存者空间)。这些对象(除非它们是类等内部对象)不会存储在PermGen空间中。

最新更新