JVM之 永久代与元空间

JVM之 永久代与元空间

在介绍永久代之前我们要先来回顾一下我们的JVM内存模型

在JVM中场被提到的有栈,堆,方法区。除了这些其中还包括有我们不常提到的本地方法栈,以及程序计数器。

JVM之 永久代与元空间_第1张图片

程序计数器

这是一块较小的内存空间,可看作当前线程正在执行的字节码的行号指示器。如果当前线程正在执行的是:
Java方法
计数器记录的就是当前线程正在执行的字节码指令的地址
本地方法
那么程序计数器值为undefined

Java虚拟机栈(JVM Stack)

相对于基于寄存器的运行环境,JVM是基于栈结构的运行环境。栈结构移植性更好,可控性更强。

JVM中的虚拟机栈是描述Java方法执行的内存区域,属【线程私有】。

栈中的元素用于支持虚拟机进行方法调用,每个方法从开始调用到执行完成的过程,就是栈帧从入栈到出栈的过程。

本地方法栈(Native Method Stack)

本地方法栈和Java虚拟机栈实现的功能与抛出异常几乎相同。只不过

虚拟机栈是为虚拟机执行Java方法(也就是字节码)服务
本地方法栈则为虚拟机使用到的Native方法服务

你可能感兴趣的:(java,java,jvm)