public int init(){
try {
int i=4/0;
return 0;
} catch (Exception e) {
return 1;
}finally{
return 2;
}
}
返回值是2,一个方法只能有一个返回值,所以不是1就是2。
return 1之前会调用finally方法,返回了2,返回值被覆盖,所以返回2
int n=0;
try {
int i=4/0;
return n;
} catch (Exception e) {
return ++n;
}finally{
n++;
}
try {
int i=4/0;
return 0;
} catch (Exception e) {
return 1;
}finally{
return 2;
}
}
返回值是2,一个方法只能有一个返回值,所以不是1就是2。
return 1之前会调用finally方法,返回了2,返回值被覆盖,所以返回2
int n=0;
try {
int i=4/0;
return n;
} catch (Exception e) {
return ++n;
}finally{
n++;
}
返回值是1,虽然finally里面的n++了,但并不影响返回值
面试的话一般问道:finally finalize和final的区别和用法