如果是按你这么说先finally再return,而在finally语句块中已经是++1了,
但是结果为什么不是2呢?这里不是很明白哦。作者: 谭立文 时间: 2012-7-3 17:18
针对你的问题我写了如下测试程序:
public int test(){
int x = 1;
try{
System.out.println("执行try中的方法!");
return x;
}finally
{
分析:
程序首先执行try中的语句,当发现有返回语句时,记录此时的返回值,程序继续执行,finally里的语句,此时在finally里改变了x的值,因为return语句在前,此时java没有为你,改变返回时的虽然这个已经改变,因为在逻辑上你的返回语句在前。
若改为
public int test(){
int x = 1;
try{
System.out.println("执行try中的方法!");