运行时常量池主要回收的是废弃的常量。那么,我们如何判断一个常量是废弃常量呢?
假如在常量池中存在字符串"abc",如果当前没有任何 String 对象引用该字符串常量的话,就说明常量"abc"就是废弃常量,如果这时发生内存回收的话而且有必要的话,"abc"就会被系统清理出常量池。
JDK1.7 及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java堆(Heap)开辟了一块区域存放运行时常量

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.