我正在浏览堆栈框架,所以每个函数调用都会被推入堆栈帧,并在完成时弹出,那么当if块被执行时,它是被推入堆栈帧,还是会在当前方法堆栈项中执行?
发布于 2020-06-04 02:15:19
“if”可能没有块,并且块通常没有变量声明,但如果有,该变量就在堆栈上(它引用的任何对象总是在堆上)。它不是一个调用,所以不需要新的堆栈框架;我猜框架指针是put,堆栈指针会递减,以便为它腾出空间,也许是模4或8,以保持CPU满意,当然在JAVA中,它被初始化为0/null,空间位置被标识为(frame pointer - N)。当块结束时,堆栈指针递增回来,并且忘记名称。
https://stackoverflow.com/questions/62179632
复制相似问题