我试图理解HotSpot JVM的内存结构,并混淆了“方法区域”“和"PermGen"空间”这两个术语。我提到的docs表示,方法区域包含类和方法的定义,包括字节码。其他一些文档说它们存储在PermGen空间中。
那么,我是否可以得出结论,这两个内存区域是相同的
发布于 2012-02-01 12:31:47
您应该看看Java内存类型,也可以看一下这个关于垃圾收集的文档。后者非常冗长,两者都很有用。
实际上,方法领域是永久一代的一部分:
与终身世代密切相关的第三代是永久一代。永久生成之所以特殊,是因为它保存虚拟机所需的数据,以描述在Java语言级别上没有等价性的对象。例如,描述类和方法的对象存储在永久生成中。
发布于 2013-07-06 09:06:39
方法区域基本上是一个非堆空间,如Stack,它保留类骨架。骨架包括带有值的静态变量、构造函数等。反射操作在这个内存区域上操作。Perm是一个与堆并行的内存空间,它保存当前执行类的二进制代码。
发布于 2015-03-31 15:31:17
给出了一个很好的主意,我在其他地方还没有找到
大多数人把堆和堆栈当作等价物和主要组件来讨论,但是Tai给出了一幅完美的图片解释,并给出了极好的图像。
编辑:链接不再工作:(
https://stackoverflow.com/questions/9095748
复制相似问题