public class Test {
/**
* @param args add by zxx ,Dec 9, 2008
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new Test().test());;
}
static int test()
{
int x = 1;
try
{
return x;
}
finally
{
++x;
System.out.println("this is the x:" + x );
}
}
}
//结果:
this is the x:2
1
这个问题是要分析try{}catch(){}finally{}的执行流程的。
finally{}中的内容是指,不论try{}中的代码段执行过程中是否会发生异常,在退出(return ....;)方法之前,都要执行finally{}中的代码段。
所以在try{}中,已经确定要返回1,但此时并没有立即返回,而是去执行finall{}中的代码段。
因此,先打印this is the x:2;
然后,打印机返回值1。
是呀,finally会在返回前执行
二楼正解
静态方法都用实例调用。。。
二楼正解