字符串文字是interned。从Java
7开始,HotSpot
JVM将内部字符串放置在堆中,而不是permgen。
在Java
7之前,hotspot将内部字符串放入permgen中。但是,permgen中的被锁住的Strings被垃圾收集了。显然,permgen中的Class对象也是可收集的,因此permgen中的所有内容都是可收集的,尽管在某些旧的JVM中可能默认情况下未启用permgen收集。
被嵌入的字符串文字将是由声明的Class对象持有的对内部池中String对象的引用。因此,只有在还收集了引用了它的Class对象的情况下,才收集实习文本字符串。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)