- /**
- * 第八题:用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行finally?
- */
- class Test8
- {
- public static void main(String[] args)
- {
- System.out.println("return打印:"+tryTest());
- /* 结果分析说明:
- * 运行会打印两行字符串,因为一个是main方法打印,一个是tryTest打印,
- * 所以两行字符串打印的先后顺序不做参考。
- *
- * 打印可能性:
- * 1、如果"return打印"为0,"finally打印"为1;
- * 表示return指令在i++之前运行,所以是先执行try中的return再执行finally
- * 2、如果"return打印"为1,"finally打印"为1;
- * 表示i++在return指令之前运行,所以是先执行finally再执行try中的return
- *
- * 结论:
- * 经过运行发现,打印结果为:
- * finally打印:1
- * return打印:0
- * 所以,是先先执行try中的return再执行finally
- */
- }
- public static int tryTest()
- {
- int i=0;
- try
- {
- return i;
- }
- finally
- {
- i++;
- System.out.println("finally打印:"+i);
- }
- }
- }
复制代码
|
|