public int test() {
int x = 1;
try {
++x;
return x;
} finally {
++x;
}
}
为什么执行test()返回的值是2,而不是3,finally不是在return之前执行吗?
这个与jvm的堆栈有关吗?
public int test() {
int x = 1;
try {
++x;
return x;
} finally {
++x;
}
}
为什么执行test()返回的值是2,而不是3,finally不是在return之前执行吗?
这个与jvm的堆栈有关吗?
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
这个debug一下就知道了啊,先执行到return x,所以test()的return值就是2,return完之后才跑的final block,之后i又加了1和return出去的值没有关系。