日期:2014-05-19  浏览次数:20663 次

问一个简单JVM 的问题。
test()
{
int a = b().c().d();
}
我知道b这个函数运行完成以后会把b函数的返回值保存在test的操作数栈上,
那么这个返回值什么时候被移除。

------解决方案--------------------
当调用一个方法的时候就会往java栈上压一个栈帧,当方法调用结束(不管是异常还是正常),这个栈帧就被弹出废弃,所以,只有当test执行结束,才会弹出test的栈帧
http://www.ticmy.com/?p=151