Java虚拟机在其运行区域上划分为5大区域,这5大区域分别为方法区,堆区,本地方法栈,虚拟机栈,程序计数器,前2者被所有线程共享,后三者只属于自己的线程,下面分别讲述下5大区域:
方法区:
功能及定义:存储已经被虚拟机加载的类型信息,常量,静态变量,即时编译器变异的缓存。
备注:运行时常量池属于该区域。
堆:
功能及定义:内存区域中唯一存放对象实例(换个说法 所有对象的实例及数组分配都在堆中)
备注:该区域受垃圾回收机制管理
程序计数器:
定义:当前线程所执行的字节码的行号指示器。
功能:它是控制流的指示器,分支,循环,跳转,异常处理等基本功能依靠程序计数器。
虚拟机栈:
定义:JAVA方法执行的线程内存模型。(虚拟机执行JAVA方法服务–字节码)
功能:每个方法执行的时候,Java虚拟机都会同步创建一个栈帧,用于存储局部变量表,操作数栈,动态链接等信息,每一个方法执行对应着栈帧在虚拟机中入栈到出栈的过程。
本地方法栈:
定义:本地方法栈为虚拟机使用到本地方法服务。
JAVA的虚拟机-内存模型总结
本文详细解析了Java虚拟机(JVM)的五大内存区域:方法区、堆、本地方法栈、虚拟机栈和程序计数器。介绍了各区域的功能、用途及管理方式,帮助读者深入理解JVM内存布局。

被折叠的 条评论
为什么被折叠?



