package test;
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new Test3().test());
}
static int test(){
int x=1;
try{
return x;
}
finally{//finally均要执行
return ++x;//结果为2
}
}
}
通过结果为2可以知道finally部分一定会执行,并会覆盖掉try相同部分,那么如果return x++;结果是什么?
附上代码
package test;
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new Test3().test());
}
static int test(){
int x=1;
try{
return x;
}
finally{//finally均要执行
//return ++x;//结果为2
return x++;//结果为1
}
}
}
对比两个代码可以发现,return的结果不一样。
这里需要说明的是x++是先输出x的值再进行自加,而++x是先自加然后输出x的值;
相当于return的是x的值,而不是算式的结果。