JVM之虚拟机栈

数据运行时数据区域

Java虚拟机在执行Java程序过程中会将它管理的内存分成若干个不同的数据区域,不同的数据区域用途不同,内存的管理(创建和销毁)不同,如图1-1是Java虚拟机中数据的区域模型图。

图1-1 Java 虚拟机运行时数据区

Java虚拟机栈

Java虚拟机栈,也就是大家经常说的栈内存,Java栈。每个方法在被执行的时候Java虚拟机都会同步创建一个栈帧(Stack Frame),用于存储局部变量表、操作数栈、动态连接、方法返回地址等其他信息。每一个方法被调用到执行完的过程对应的就是每个栈帧在虚拟机中从入栈到出栈的过程。栈帧是一种基本数据数据结构。如图1-2所示。


图1-2 栈帧概念结构

局部变量表

什么是局部变量表
有什么作用
存储的是什么

操作数栈

什么是操作数栈
有什么作用

动态连接

什么是动态连接
有什么作用

方法返回地址

是什么
有什么作用

其他信息

其他信息是什么

总结

思考

引用

  1. 《深入理解Java虚拟·JVM高级特性与最佳实践 第3版》周志明

你可能感兴趣的:(JVM之虚拟机栈)