try{}finally{}语句探讨

来源:互联网 发布:电脑不能从网络启动 编辑:程序博客网 时间:2024/06/05 08:38
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;//结果为2return x++;//结果为1}}}
对比两个代码可以发现,return的结果不一样。

这里需要说明的是x++是先输出x的值再进行自加,而++x是先自加然后输出x的值;

相当于return的是x的值,而不是算式的结果。


原创粉丝点击