Java6和6之前,常量池是存放在方法区(永久代)中的。 Java7,将常量池是存放到了堆中。 Java8之后,取消了整个永久代区域,取而代之的是元空间。运行时常量池和静态常量池存放在元空间中,而字符串常量池依然存放在堆中。