标签:
Java常见面试题之一:
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
请看下面程序就可以解释:
public class FinallyTest { public static void main(String[] args) { System.out.println(returnAndFinally()); } public static int returnAndFinally(){ int result = 0; try { result = 1; return result; } catch (Exception e) { }finally{ result ++; System.out.println("finally..."); } System.out.println("afterfinally..."); return result; } }
结果如下:
finally... 1
从结果可以看出,其实关于这个回答可以说是,finally是在return中间执行的,执行到return之后,结果就放在一个临时空间里面,然后就执行finally,虽然finally里面有对result里面操作,但是已经不影响结果了,除非是在finally里面有执行return。
标签:
原文地址:http://www.cnblogs.com/sevenlin/p/sevenlin_java_interview.html