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

来源:互联网 发布:淘宝如何部分商品退款 编辑:程序博客网 时间:2024/06/02 15:58

中第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代码块的语句

最后返回函数栈中的结果

原创粉丝点击