是永久生成堆的一部分,还是它位于jvm中的不同空间

Nav*_*Nav 8 heap jvm permgen

我已经看到关于这个问题的多个评论 - 有些人说是,有些人说不,而且许多答案都含糊不清.任何人都可以用更简单的术语描述它所在的位置吗?在一篇文章中,我甚至看到有人说它与类内存共享相同的内存位置,类是由类加载器加载的 - 这是真的吗?

Gre*_*att 4

原始(可能是错误的)答案:如果维基百科可信,它就是堆的一部分。

编辑:我已经对此进行了更多研究,包括OP评论中引用的网站。在这项研究过程中,我遇到了这个 SO 问题,它引用了这篇文档,这表明对于 Sun Java(版本 6),永久集合实际上位于堆之外。也就是说,我不是 Java 专家,之前也不知道这个级别的内存管理细节。如果我的理解是正确的,那么永久代的放置(甚至存在)就是 jvm 实现细节。