我正在阅读这篇文章,它说:
堆的永久代或Perm区有些特殊,用于存储JVM中与类和方法相关的元数据,它还托管了JVM提供的字符串池,如我在我的字符串教程中讨论的为什么Java中的字符串是不可变的。关于Java中的垃圾回收是否发生在Perm区域,有很多不同的意见,据我所知,这取决于JVM,至少在Sun的JVM实现中会发生。您也可以通过创建数百万个字符串并观察垃圾回收或OutOfMemoryError来尝试此操作。
所以我有一个问题:
垃圾回收是否发生在Perm区域?如果不是,那么静态变量或方法和字符串字面值池如何被垃圾回收?
堆的永久代或Perm区有些特殊,用于存储JVM中与类和方法相关的元数据,它还托管了JVM提供的字符串池,如我在我的字符串教程中讨论的为什么Java中的字符串是不可变的。关于Java中的垃圾回收是否发生在Perm区域,有很多不同的意见,据我所知,这取决于JVM,至少在Sun的JVM实现中会发生。您也可以通过创建数百万个字符串并观察垃圾回收或OutOfMemoryError来尝试此操作。
所以我有一个问题:
垃圾回收是否发生在Perm区域?如果不是,那么静态变量或方法和字符串字面值池如何被垃圾回收?