class VariantTest {
public static void main(String[] args) {
System.out.println("main...."+new VariantTest().test());
}
static int test()
{
int x = 1;
try
{
return x;
}
finally
{
++x;
System.out.println("finally....."+x);
}
}
}
运行结果:
finally.....2
main....1
将小程序进行如上的小改动,在finally中添加小小的打印程序,我们就可以从输出结果中清晰的看到,其实finally语句已经执行了,而且在主函数的println语句前执行。
在调用test()方法的时候,返回了x的值给主函数。而finally中的++x,是在对象中的x自增1,并没有返回给主函数,所以主函数输出的结果为1(即try中return的x值)
|