一般人都会回答在return之前执行,但是更详细的我觉得应该是在return中执行的。
例如:
public class Test {
public static void main(String[] args) {
System.out.println(new Test().test());
}
static int test()
{
int x = 1;
try
{
return x=4;
}
finally
{
System.out.println(finally+x);
}
}
}
结果:
finally4
4
我的理解是,当try运行到return后,就会执行后面的x=4赋值语句,注意只是单纯的赋值并没有return,
然后在执行finally中的东西System.out.println(finally+x);然后打出一行“finally4”,
finally执行完了后才执行return,返回值,然后mian函数中通过
System.out.println(new Test().test());
这句话打印出“4”来。