class Test {
public static void main(String[] args) {
System.out.println(new Test().test());;
}
int test()
{
try
{
return func1();
}
finally
{
return func2();
}
}
int func1()
{
System.out.println("func1");
return 1;
}
int func2()
{
System.out.println("func2");
return 2;
}
}
/*
运行结果是
func1
func2
2
说明finally是在return后执行的,但finally一定会被执行完。*/
class Test {
public static void main(String[] args) {
System.out.println(new Test().test());;
}
static int test()
{
int x = 1;
try
{
return x;
}
finally
{
++x;//x=2
}
}
}/*
这里的运行结果是 1
finally在return后执行,++x不是2,x指向的是2,为什么是1呢?
中间出现了说明插曲!求大神解释!*/
|