返回值是5,测试函数:
public class TestTry {
public static void main(String[] args) {
TestTry t = new TestTry();
System.out.println(t.test());
}
@SuppressWarnings("finally")
public int test(){
try{
return function1();
}finally{
return function2();
}
}
public int function1(){
System.out.println("function1执行");
return 1;
}
public int function2(){
System.out.println("function2执行");
return 2;
}
}
执行结果:
function1执行
function2执行
2
结论:finally{}中的语句在try{}之后执行,try中的return语句得到值1,此时并不会让函数立刻返回,而是把1这个值存到函数栈中,然后执行finally{},此时得到值2,并返回函数。