首页 > 其他分享 >JVM方法栈

JVM方法栈

时间:2022-10-28 11:57:27浏览次数:43  
标签:出栈 压栈 JVM 栈桢 main 方法

栈(Stack)是一种运算受限的线性数据结构,所谓的运算受限指的是:栈这种数据结构仅允许在一端添加元素,删除元素,这一端被称作栈顶,而相对的另一端被称为栈底。
image
元素 A 最先进栈,最后出栈,元素 D 最后进栈,最先出栈。
所以,栈具有这种后进先出(LIFO-> Last In First Out)的特性。

方法栈

方法栈会以栈桢为单位进行压栈与出栈操作,每一个方法从调用开始到执行完成,都对应着一个栈桢在方法栈从入栈到出栈的过程。

压栈

栈帧位于栈顶

栈桢存储了方法的局部变量表,操作数栈,方法返回地址等信息

从 main 方法开始,方法逐个调用直至进入到 C 方法,方法栈会一直压栈,只有位于栈顶的栈桢才是有效的,称为当前栈桢,与这个栈桢相关联的方法称为当前方法。
image
具体如下:
image

出栈

现在,JVM 方法栈的当前栈桢为 C 方法的栈桢,在 C 方法执行完毕后,C 方法的栈桢出栈。
image
来到 B 方法的第 6 行,B 方法执行完毕后,代表 B 方法的栈桢出栈。
image
来到 A 方法的第 3 行,A 方法执行完毕后,代表 A 方法的栈桢出栈。
image
最后来到 main 方法的第 2 行,main 方法执行完毕后弹出,方法栈为空,代表所有方法已经执行完毕。
image
image

标签:出栈,压栈,JVM,栈桢,main,方法
From: https://www.cnblogs.com/itsanjin/p/16835287.html

相关文章

  • moment.js时间格式|如何使用|使用方法
    moment时间格式修改1.引入moment.jsnpminstallmoment2.在main.js中进行使用importmomentfrom'moment';moment.locale('zh-cn');Vue.prototype.moment=momen......
  • Firedac 在数据表中插入BLOB数据的方法
    准备在一个比较简单的数据表中插入图片。该数据表的创建代码如下:CREATETABLE"imagelist"("id"INTEGERPRIMARYKEYAUTOINCREMENTNOTNULL,"name"ftstring(10......
  • 10个机器学习中常用的距离度量方法
    距离度量是有监督和无监督学习算法的基础,包括k近邻、支持向量机和k均值聚类等。距离度量的选择影响我们的机器学习结果,因此考虑哪种度量最适合这个问题是很重要的。因此,我......
  • JVM 内存区域的划分
    前言本博文将从内存管理的角度,进一步探索Java虚拟机(JVM)。垃圾收集机制为我们打理了很多繁琐的工作,大大提高了开发的效率,但是,垃圾收集也不是万能的,懂得JVM内部的内存结构......
  • Elasticsearch 集群健康值红色解决方法
    通过http://10.2.83.29:9100/查询集群状态为红色,说明部分主分片不可用head插件会以不同的颜色显示。绿色——最健康的状态,代表所有的主分片和副本分片都可用;黄色——所......
  • nvm安装后无法找到D:\nodejs\node_modules\npm\bin\npm-cli.js的解决方法
    原因:系统环境变量配置不正确,需要手工修改,如图   将上图中的路径D:\NodeVersionManagement\nodejs(路径不准确)改为D:\NodeVersionManagement\nodejs\node_modules\np......
  • js 深拷贝四种方法
    第一种:JSON.stringify()letobj={username:admin,password:"123456"}//先转为json格式字符,再转回来letnewObj=JSON.parse(JSON.stringify(obj));obj.password=M......
  • selenium定位之find_element方法
    自学习selenium以来,提到元素定位首先想得的是find_element_by_xxx。 但是今天学习时发现了还有一个方法find_element,没有后面的by。 于是试图点进去源码看看,未果(不......
  • java中Collections.shuffle方法的功能说明
    转自:​​http://www.java265.com/JavaCourse/202203/2625.html​​Collections简介:  Collections是一个操作Set、List和Map等集合的工具类。Collections中提供了......
  • Java:死锁及避免方法
    死锁因为我其他文章有贴过死锁的代码,就不贴了。说下什么是死锁。举个生活的例子:两个女孩打架,互相揪着对方的头发不松手,让对方先放她才放。嗯,这个情况就是死锁。死锁的必......