Advertisement

JDK 8 JVM内存结构详细说明

阅读量:

前言

本文主要介绍了 JDK 1.8 版本,在其他版本中未必完全适用;其内容源自周志明所著的《深入理解Java虚拟机》一书的核心内容,并基于个人的理解进行了整理和总结。如需深入了解相关内容,请参考原著。


JVM 的内存结构,主要包括以下 5 个区域:

线程私有: 程序计数器、虚拟机栈、本地方法栈
线程共享: 方法区、堆

在这里插入图片描述
程序计数器

如前所述,在程序设计中存在一个重要的机制:程序计数器。它标识当前线程所执行的字节码指令行号,并通过其机制实现指令转移与循环操作。当该线程完成CPU的时间片切换时,则需要使用该计数器来记录相应的信息以便后续恢复‘执行现场’;这也正是其独特性的原因:这种计数器的设计使其能够避免内存溢出(OutOfMemoryError)的情况出现,在虚拟机规范中被唯一确定为这一特性所在区域。

Java 虚拟机栈

Java 虚拟机栈具有专有性于线程,在方法执行时会生成一个栈帧。该栈帧包含了以下信息:局部变量表、操作数栈、动态链接和方法出口。考虑一下,以下方法执行时,对应的是哪

全部评论 (0)

还没有任何评论哟~