Java笔试题——Problem8

Problem

以下程序运行的结果是多少

public class TestReturn {
    public static void main(String[] args) {
        System.out.println(getValue());
    }

    public static int getValue() {
        try {
            return 0;
        } finally {
            return 1;
        }
    }
}

Answer

输出1,程序调用getVaule()方法首先执行try内的方法,正常情况下返回0,但是finally代码块一定会被执行,所以在return 0前首先会执行return 1,而既然已经return 1了,就不在执行return 0了,所以函数返回1,程序输出1

你可能感兴趣的:(Java笔试题——Problem8)