应该是先执行try里的return,再执行finally。没有直接证明,但是这里有段代码可以间接证明:
- public class Test {
- public static void main(String[] args) {
- System.out.println(test());
- }
- @SuppressWarnings("finally")
- static int test(){
- try {
- return 0;
- }finally{
- return 1;
- }
- }
- }
复制代码
输出的结果是1,而不是0。
从这里可以间接判断先执行了try里的return语句,然后执行finally里的return语句,而且finally里的return覆盖了try里面结果。
|