一个栈帧需要多少内存,是在运行期才决定的么?
简单的理解,一个栈帧就对应着程序中的一个方法,而每一个方法从开始调用到执行结束的过程,都对应着一个栈帧在虚拟机栈中的入栈和出栈,而每一个栈帧中都包括了局部变量表、操作数栈、动态连接、方法返回地址和一些额外的附加信息,在编译阶段时,栈帧中需要多大的局部变量表,多深的操作数栈都会被分析计算出来,所以一个栈帧需要分配多少内存,在编译期就决定了,并不会受到程序运行期变量数据的影响,它仅仅取决于程序源码和具
·
简单的理解,一个栈帧就对应着程序中的一个方法,而每一个方法从开始调用到执行结束的过程,都对应着一个栈帧在虚拟机栈中的入栈和出栈,而每一个栈帧中都包括了局部变量表、操作数栈、动态连接、方法返回地址和一些额外的附加信息,在编译阶段时,栈帧中需要多大的局部变量表,多深的操作数栈都会被分析计算出来,所以一个栈帧需要分配多少内存,在编译期就决定了,并不会受到程序运行期变量数据的影响,它仅仅取决于程序源码和具体的虚拟机实现的栈内存布局形式。
更多推荐
已为社区贡献12条内容
所有评论(0)