A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Test8{

        // 定义静态变量
        private static int a = 10;

        public static void main(String[] args) {

                // 测试在try中写了return,后面又写了finally,是先执行return还是先执行fianlly
                int b = testTryReturn();
                // 输出测试结果
                System.out.println("a = " + a);
                System.out.println("b = " + b);
        }

        private static int testTryReturn() {
                // TODO Auto-generated method stub

                try {
                        a = 1;
                        return a;
                } finally {
                        a = 5;
                }
        }
}

结果分析:测试结果a=5,b=1,也就是说程序走到return时,阻塞,然后执行finally里面的代码,等到finally里面的代码执行完以后,return语句阻塞消失,然后继续执行,准确的说finally在return执行过程中执行,也可以认为先执行finally,后执行return

1 个回复

正序浏览
顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马