KNCL34E_20200904-李诚

问题

public class Magpie {
    public int wusuowei1() {
        int a = 100 ;
        try {
            return a ;
        } catch( Exception e ) {
            return -a;
        } finally {
            ++a ;
        }
    }
    public int wusuowei2() {
        int a = 100 ;
        try {
            return a ;
        } catch( Exception e ) {
            return -a;
        } finally {
            return ++a ;
        }
    }
    public static void main(String[] args) {
        Magpie m = new Magpie();
        int x = m.wusuowei1();
        System.out.println( x );
        int y = m.wusuowei2();
        System.out.println( y );
    }
}

输出结果: 100

​ 101

wusuowei1中,finally中++a未返回,而try中返回了a

wusuowei2中,finally++a返回,覆盖了try中返回的a

可以这么理解吗

吐槽

今天的内容感觉有点绕,体系有点复杂,还得好好理一理

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1