JVM中常量池存放在哪里

2020-08-27  本文已影响0人  ChandlerQian

java8之前:

java8之后:元数据区 Metaspace

由于 PermGen 内存管理的效果远没有达到预期,所以JCP已经着手去除PermGen的工作。在JDK7中,字符串常量已经从永久代移除。现今 JDK8 中 PermGen 已经被彻底移除,取而代之的是metaspace数据区,使用native内存,申请和释放由虚拟机负责管理。

那么,JVM中常量池到底存放在哪里?

Java6和6之前,常量池是存放在方法区(永久代)中的。

Java7,将常量池是存放到了堆中。

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

上一篇下一篇

猜你喜欢

热点阅读