关闭

对<Java面试宝典2013版(超长版)>的38个问题的修改

475人阅读 评论(0) 收藏 举报
分类:

中第38个问题错了


38 try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

public class Demo2 {
@SuppressWarnings("static-access")
public static void main(String[] args) {
      System.out.println(new Demo2().test());;
   }
 
   static int test()
   {
      int x = 1;
      try
      { System.out.println(x+"第一次执行");
          return x;//最后执行的代码块
      }
      finally
      {
          ++x;System.out.println(x+"接着执行finally代码块");
      }
   }
  
}


输出结果:

1第一次执行
2接着执行finally代码块
1

所以:先执行try中的代码,其中把执行的return结果放到函数栈中

然后执行finally代码块的语句

最后返回函数栈中的结果

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13535次
    • 积分:268
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条