直接上图(对应JDK8以及以后的HotSpot)
这里主要区分说明一下 方法区 于 字符串常量池 的位置更迭:
方法区
JDK7 以及之前的版本将方法区存放在堆区域中的 永久代空间,堆的大小由虚拟机参数来控制。
JDK8 以及之后的版本将方法区存放在 元空间 中,元空间位于 操作系统维护的直接内存中,默认情况下只要不超过操作系统承受的上限,可以一直分配。
字符串常量池
JDK6 以及之前的版本存储在方法区中的运行时常量池中
JDK7 以及以后存储在堆(Heap)中
直接上图(对应JDK8以及以后的HotSpot)
这里主要区分说明一下 方法区 于 字符串常量池 的位置更迭:
JDK7 以及之前的版本将方法区存放在堆区域中的 永久代空间,堆的大小由虚拟机参数来控制。
JDK8 以及之后的版本将方法区存放在 元空间 中,元空间位于 操作系统维护的直接内存中,默认情况下只要不超过操作系统承受的上限,可以一直分配。
JDK6 以及之前的版本存储在方法区中的运行时常量池中
JDK7 以及以后存储在堆(Heap)中