题目1 :
@Test
public void test() {
System.out.println(test11());
}
public String test11() {
try {
System.out.println("try block");
return test12();
} finally {
System.out.println("finally block");
}
}
public static String test12() {
System.out.println("return statement");
return "after return";
}
结果:
try block
return statement
finally block
after return
总结:finally块的语句在try或catch中的return语句执行之后,并在其返回之前执行且finally里的修改语句可能影响也可能不影响try或catch中 return已经确定的返回值,若finally里也有return语句则覆盖try或catch中的return语句直接返回。