栈帧内部结构分析

95 阅读1分钟

1. 什么是栈帧

百度结果的答案是:C语言中,每个栈帧对应着一个未运行完的函数。上面的这句话可以理解为:每一个栈帧都对应着一个函数(也就是java中的方法),且是没有运行完的一个方法。也就是说每一个方法都有一个栈帧,而且每个方法的栈帧是不会共享内部数据的。

2.栈帧中都保存了什么数据

栈帧中保存的数据有:局部变量表、操作数栈、动态链接(常量池)、方法出口

3.栈帧的特性

栈帧有压栈和出栈2个概念,所谓的压栈就是把数据放到栈帧中,出栈我相信你知道是干什么的了。在栈帧中是先进后出,后进先出的原则。