中第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代码块的语句
最后返回函数栈中的结果