java中元空间区域或permgen的引用在哪里

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中元空间区域或permgen的引用在哪里相关的知识,希望对你有一定的参考价值。

我正在阅读java语言规范和jvm规范。

但我找不到有关PermGen或Metaspace的参考资料。

据我所知,java 7中的PermGen在java 8中更改为Metaspace。 但我在java规范等官方文档中找不到它。

我试图正确理解java的内存区域。

在JVM 7和8规范中,只有大约6个运行时数据区的引用是PC RegisterJVM stacksHeapMethod AreaRuntime Constant PoolNative Method stacks。 那么,我什么时候可以从中获取信息? 我感激你。

答案

PermGen(永久代)已在JDK 8中完全删除。

在JDK 8中,类元数据现在存储在本机堆中,此空间称为Metaspace。

这里给出了一个非常好的信息:https://dzone.com/articles/java-8-permgen-metaspace

关于差异:What is the difference between PermGen and Metaspace?

Oracle博客参考:https://blogs.oracle.com/poonam/about-g1-garbage-collector,-permanent-generation-and-metaspace

以上是关于java中元空间区域或permgen的引用在哪里的主要内容,如果未能解决你的问题,请参考以下文章

Java垃圾收集器

JDK8废弃永久代

PermGen 空间的意义

类成员变量在哪里分配

JVM YoungGen(新生代),OldGen(年老代),和PermGen(持久区)

HotSpot Java虚拟机中的“方法区”“持久代”“元数据区”的关系?