1.finally语句执行顺序一定在try语句后!!!
2.下段代码中最终返回结果是10,++i语句在return语句执行后才执行。
public int returnNum(){
int i= 10;
try{
return i;
}finally{
++i;
}
}
3.下列语句最终返回结果"finally"。
代码执行顺序为1,2。按理说如果先执行了代码段1,那么返回结果直接就是"try"了,但因为有finally段代码存在,所以函数不会直接将最后结果返回,而是将结果存放在函数栈中,等待代码段2执行。
但代码段2执行完成之后,将函数栈中的结果值覆盖了,故最终返回"finally"
public String returnString(){
try{
return "try"; //1
}finally{
return "finally"; //2
}
}
4.综上,函数会先执行try段代码,如果有返回值,则先将返回值保存至函数栈中,待finally段函数执行完毕再将函数结果返回。