关于try{……}finally{……}的面试题。
结果:
2
HelloWorld!
1
结果:
foo1
foo2
2
下面程序运行结果:
public class Demo {
public static void main(String[] args) {
System.out.println(new Demo().test());
}
static int test(){
int x = 1;
try{
return x;
}finally{
x++;
System.out.println(x);
System.out.println("HelloWorld!");
}
}
}
结果:
2
HelloWorld!
1
finally语句块作用就是为了保证无论出现什么情况,一定要执行的,那么finally里的code肯定会执行,并且是在return之前执行。finally中也可以有return,并且会覆盖其他return。
现在,再看一题:
public class Demo {
public static void main(String[] args) {
System.out.println(new Demo().test());
}
static int test(){
try{
return foo1();
}finally{
return foo2();
}
}
static int foo1(){
System.out.println("foo1");
return 1;
}
static int foo2(){
System.out.println("foo2");
return 2;
}
}
结果:
foo1
foo2
2