try-finally中执行顺序的问题

public class Test {
    public static void main(String[] args) {
        System.out.println(Work.work());
    }
}

class Work{
    static int work() {
        int i = 1;
        try {

            return i;
        } finally {
            i=10;
            System.out.println("这里执行了");
        }
    }
}

先贴出运行结果

首先try中先执行i=2,然后将2这个值交给return,但是return不会立刻执行,而是要先执行finally中的代码,将i=10,然后打印....但此时return的值已经不是i(10),而是2.

猜你喜欢

转载自blog.csdn.net/reveire7/article/details/82668160