问一个简单JVM 的问题。
test()
{
int a = b().c().d();
}
我知道b这个函数运行完成以后会把b函数的返回值保存在test的操作数栈上,
那么这个返回值什么时候被移除。
[解决办法]
当调用一个方法的时候就会往java栈上压一个栈帧,当方法调用结束(不管是异常还是正常),这个栈帧就被弹出废弃,所以,只有当test执行结束,才会弹出test的栈帧
http://www.ticmy.com/?p=151
发布时间: 2012-09-24 13:49:41 作者: rapoo
问一个简单JVM 的问题。
test()
{
int a = b().c().d();
}
我知道b这个函数运行完成以后会把b函数的返回值保存在test的操作数栈上,
那么这个返回值什么时候被移除。
[解决办法]
当调用一个方法的时候就会往java栈上压一个栈帧,当方法调用结束(不管是异常还是正常),这个栈帧就被弹出废弃,所以,只有当test执行结束,才会弹出test的栈帧
http://www.ticmy.com/?p=151