本帖最后由 Mokill0911 于 2014-8-27 02:35 编辑
发现交了辞呈之后心情不太好,所以拿基础测试题练练手稳定下情绪,然后发现了一些有趣的问题,贴出来大家分享~~~
测试题6、 用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行finally?
首先确信答案是先执行finally,然后这是我的代码:
- public class Test6
- {
- public static void main(String[] args)
- {
- System.out.println(tempMethod());
- }
-
- public static String tempMethod()
- {
- try
- {
- return ("return in the try...");
- }
- catch( Exception e)
- {}
- finally
- {
- System.out.println( "this's finally...");
- }
- return ("End return...");
- }
- }
复制代码 执行结果:
this's finally...
return in the try...
但是我在论坛上有同学说应该是return先执行,
这是他 (报纸同学) 的帖子:http://bbs.itheima.com/forum.php?mod=viewthread&tid=101722
是的,最开始我没仔细想,执行了一遍代码发现结果确实如他所说
然后我把他的代码进行了一些修改,发现实际情况应该是这样的~
- class test6temp
- {
- public static void main(String[] args)
- {
- System.out.println("i= "+tempMesthod ());
- }
-
- public static int tempMesthod()
- {
- int i =1;
- try
- {
- return ++i;
- }
- catch(Exception e)
- {
-
- }
- finally
- {
- i= 5;
- //我增加了这行代码 System.out.println(i);
- }
- return i;
- }
- }
复制代码
注释是我增加的代码,显然这位童鞋被JVM欺骗了;P
|
|