让我们看看栈里头都发生了什么,记住我们看到的只是栈顶的东西,下头早有无数别的东东在里面了哦!
当我们开始执行这个方法时,方法的参数被压栈(稍后我们讨论参数传递)。
Notice: 方法并不存在stack里头,图例只是为了演示概念

下一步,控制(线程执行这个方法)被交给AddFive方法在方法表中的指令集,如果这是第一次使用这个方法,JIT编译将被执行。

在方法的执行过程中,我们需要内存来保存 "result”,因此栈顶为其分配空间。

方法结束了,result被返回。

这时栈顶指针将会移到最初AddFive方法开始的内存地址,这样所有刚才分配的内存空间都被清理掉了,然后接着执行AddFive更下面的函数(图中为显示)。

在这个例子里,result变量被压栈。事实上,任何时候值变量在方法内部被声明,都会被压栈。