首页 > Java > java教程 > Java 静态成员存储在内存中的什么位置?

Java 静态成员存储在内存中的什么位置?

Susan Sarandon
发布: 2024-12-04 08:37:11
原创
440 人浏览过

Where Are Java Static Members Stored in Memory?

Java 中静态成员存储在内存中的什么位置?

静态方法和变量,例如提供的 Java 代码片段中演示的那些,存储在 Oracle 的 Hotspot JVM 和其他基于它的堆内存的 PermGen 部分中。 PermGen 保存元数据,包括类相关数据。

存储机制:

  • 静态变量:仅其技术值(原语或引用)存储在 PermGen 中。如果静态变量引用一个对象,则该对象本身驻留在标准堆区域中,而不是 PermGen。
  • 静态方法: 所有方法(包括静态方法)都会作为反射的一部分占用 PermGen 中的空间数据。

重要注意:

  • PermGen 仅用于元数据;静态字段存储在常规堆中。
  • Eclipse OpenJ9 和其他 JVM 可能没有 PermGen 或 Metaspace。
  • 依靠 Finalize() 进行垃圾回收是不可靠的。由 JVM 来确定垃圾回收时间和合格的对象。
  • 单独将静态变量设置为 null 可能无法保证从堆中删除对象。
  • 代码和数据的存储方式可能会有所不同取决于 JVM 实现和版本。

以上是Java 静态成员存储在内存中的什么位置?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板