串池也就是StringTable,在JDK1.6中是方法区中运行时常量池的一部分([[Java内存区域]]),到JDK1.8时代,方法区被移到了本地内存,而串池留在了堆中。发生这一变化的原因是,只有在full gc的时候才会触发永久代的垃圾回收,而full gc发生在老年代空间不足时,触发时间晚,但是StringTable用的非常频繁,这就间接导致StringTable回收效率不高,这样在minor gc时就可以触发StringTable的垃圾回收,减轻了字符串对内存的占用
什么是串池
最新推荐文章于 2025-05-09 19:22:22 发布