public class Test {
public static void main(String[] args) {
int y = new Test().a();
System.out.println("main:" + y);
}
public int a() {
int x = 1;
try {
return x;
} finally {
x++;
System.out.println("finally:" + x);
}
}
}
输出结果是:
finally:2
main:1
先执行try中return后面的表达式,在返回的那一刻,先实际返回,再执行finally中的语句,然后再最终返回。
try中return的值是不会被finally更改的。