今天看JVM内存结构的时候看到intern()方法对YoungGC的影响。引发我这个疑问。
我在网上查了很多,每一个都只是说明了字符串常量池(StringTable)在堆空间中,没有一个说具体在哪。(此处说的都是JDK1.7之后的StringTable)
无非三种情况
在年轻代
在老年代
在年轻代和老年代都有
我做了几个简单的测试发现,YoungGC不会减小字符串常量池的大小,所以年轻代的垃圾清理不会清理字符串常量池的对象。但是字符串对象创建之后又会在新生代创建。FullGC和CMSGC时,字符串常量池都会减小。
到这里我就迷糊了,这个字符串常量池到底怎么在堆内存中?
请看到的dl解答我的问题 QWQ