java try中包含return语句,finally中的return语句返回顺序
//结论: finally 中的代码比 return 和 break 语句后执行
public static void main(String[] args) {
int x=new Test.test();
System.out.println(x);//out:1
}
int test(){
/int x=1;
try{
return x;//在进入finally之前 已经将return的值传到返回栈中,finally中对x的修改并没有用return语句返回到主函数中
}
finally{
x=2;// 并没有起作用
// return 2;// 加上此句, 比 try 中的return x语句后执行,所以 返回2
}
//////////////////////////////
使用函数 更清楚的看出结论
try{
return fun1();
}
finally {
return fun2();
}
}
private int fun2() {
System.out.println("fun2");
return 2;
}
private int fun1() {
System.out.println("fun1");
return 1;
}
//返回
fun1
fun2
主函数中 值为2