2010-02-23 71 views

回答

5

类定义 - 包括接口和抽象类 - 被保存在PermGen空间中,这意味着它们从不被垃圾收集。 PermGen是iirc,是堆的一部分。

+1

@Drew Wills:是不是只针对Sun VM的PermGen? – SyntaxT3rr0r 2010-02-23 17:33:52

+0

@WizardOfOdds可能 - 很容易(对我来说)忘记还有其他类型的东西。 PermGen是世代GC策略的一部分:它指代_permanent_世代。其他JVM是否具有分代GC? – 2010-02-23 17:38:09

+1

@WizardOfOdds对这个问题不会有任何答案是JVM实现特定的? – 2010-02-23 17:53:13

0

类定义(包括接口等)存储在堆(通常在永久代中,因为它们的生命周期很长)。如果创建它们的ClassLoader是垃圾回收,那么它们也有资格进行垃圾回收。