jvm笔记-内存模型

本文以java8及之前的版本说明
jvm笔记-内存模型
jvm笔记-内存模型
1、虚拟机栈
描述的时java方法执行的内存模型,每次方法执行都是通过栈来传递的。由一个个栈桢组成,每个栈桢中包括:局部变量表、操纵数栈、动态链接、方法出口信息。局部变量表主要存放编译器可知的数据类型如基础数据类型、对象引用。
可能会抛出的异常包括*Error和OutOfMemoryError。如果虚拟机内存大小不允许动态扩展,当线程请求栈的深度超过当前虚拟机最大深度时抛*Error异常。如果虚拟机内存大小允许动态扩展,当线程请求栈时内存已用完,无法再动态扩展时抛OutOfMemoryError。
2、本地方法栈
由一个个栈桢组成,虚拟机调用Native方法服务。
可能会抛出的异常包括*Error和OutOfMemoryError。
3、程序计数器
线程所执行的字节码行号指示器(分支、循环、跳转、异常)。
唯一不会出现OutOfMemoryError的区域
4、堆
存放对象实例、数组。垃圾收集器管理的主要区域。
5、方法区
类信息、常量、静态变量、即时编译器编译后的代码。

jvm笔记-内存模型