Java 虚拟机在执行 Java 程序的过程中会把他所管理的内存划分为若干个不同的数据区域。
Java 虚拟机规范将 JVM 所管理的内存分为以下几个运行时数据区:
- 程序计数器
- Java 虚拟机栈
- 本地方法栈
- Java 堆
- 元数据区
JDK8 之前,Hotspot 中方法区的实现是永久代(Perm)
JDK8 开始使用元空间(Metaspace),以前永久代所有内容的字符串常量移至堆内存,其他内容移至元空间,元空间直接在本地内存分配。
Java 虚拟机在执行 Java 程序的过程中会把他所管理的内存划分为若干个不同的数据区域。
Java 虚拟机规范将 JVM 所管理的内存分为以下几个运行时数据区:
JDK8 之前,Hotspot 中方法区的实现是永久代(Perm)
JDK8 开始使用元空间(Metaspace),以前永久代所有内容的字符串常量移至堆内存,其他内容移至元空间,元空间直接在本地内存分配。