java - JVM的方法区可以被垃圾回收吗?

标签 java jvm

所以我在阅读JVM规范时,遇到了以下部分:

Although the method area is logically part of the heap, simple implementations may choose not to either garbage collect or compact it.

我不确定我是否理解,这是在说 JVM 中的文本段可以被垃圾回收吗?我该如何理解?

最佳答案

I am not sure that I get that, is this saying that the text segments in JVM could be garbage collected ?

这通常不是指“文本”(单词)或 Unix/Linux 意义上的“文本段”。它指的是动态分配的内存区域,其中包含方法的字节码和/或 JIT 编译的 native 代码。它是说那些内存段可以被垃圾收集...取决于JVM实现,等等...但这不是JVM规范的要求。


在 JVM 实现中,Java 字节码被编译为 native 代码并提前链接到可执行镜像中,您将拥有“文本段”,而那些文本段不会 接受垃圾收集。 (它们不可能,因为它们是只读的,并且可能与同时执行的应用程序的其他实例共享。)

关于java - JVM的方法区可以被垃圾回收吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11480423/

相关文章:

java - 有什么方法可以在 Java 中获取一个类或实例化一个双泛型类型?

java - AngularJS 对我的 REST Web 服务的 DELETE 请求是纯文本形式吗?

java - 无法将页面加载到 WebView

java - mvn 测试 java.lang.OutOfMemoryError : unable to create new native thread

java - 什么是授权实体?在自己的应用程序中找不到 gcm_defaultSenderId

java - 父类方法如何返回子类类型?这不违反继承吗?

java - JVM - 在正在运行的(非检测的) session 中获取类的实例

JAVA - Class 类和 *.class 文件之间的区别?

java - 如果 JVM 实现因一台机器而异,字节码生成如何使 Java 平台独立?

java - JVM 垃圾收集器中的自适应大小调整