try里面的代码会被执行,如果里面有return语句,return也会被执行,但是return的结果并不会直接显示出来,而是循处在一个临时区域当中,然后执行finally的i++,虽然i变成1了,但是返回的还是临时区域里的0,但是如果把finally里面注释的return i打开,则执行finallyi++之后监测到return语句,则将i=1替换掉临时区域的i=0,然后将i=1返回。
public static void main(String[] args) {
int i = 0;
System.out.println(method1(i));
}
public static int method1(int i){
try{
return i;
}
finally{
i++;
System.out.println(i);
//return i;
}
} |