Questions tagged «permanent-generation»

1
Java中的静态分配-堆,堆栈和永久生成
最近,我一直在阅读有关Java中的内存分配方案的大量文章,并且由于我从各种来源中进行了阅读,所以存在很多疑问。我已经收集了我的概念,并要求仔细阅读所有要点并对其进行评论。我知道内存分配是特定于JVM的,因此我必须事先说一下,我的问题是特定于Sun的。 类(由类加载器加载)放在堆上的特殊区域中:永久生成 与类有关的所有信息,例如类的名称,与该类关联的对象数组,JVM使用的内部对象(例如java / lang / Object)以及优化信息,都进入“永久生成”区域。 所有静态成员变量将再次保留在永久生成区域中。 对象放在不同的堆上:年轻的一代 每个类每个方法只有一个副本,该副本是静态的还是非静态的。该副本将放置在“永久生成”区域中。对于非静态方法,所有参数和局部变量都进入堆栈-每当对该方法进行具体调用时,我们都会获得一个与之关联的新堆栈框架。我不确定静态方法的局部变量存储在哪里。他们在永久一代的堆上吗?或者只是它们的引用存储在“永久生成”区域中,而实际副本位于其他位置(在哪里?) 我也不确定方法的返回类型存储在哪里。 如果对象(年轻一代)需要使用静态成员(永久一代),则为它们提供对静态成员的引用&&为它们提供足够的存储空间以存储方法的返回类型等。 谢谢你的经历!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.