• 输出为什么是0,而不是1
  • java

public static int foo() {
int x = 0;
try {
return x;
} finally {
++x;
}
}

public static void main(String[] args) {
int res = foo();
System.out.println(res);
}

JVM会将finally中代码块内容复制到try和catch中正常return和异常throw 之前 ,这也是finally一定会执行的原因,这样不应该先执行x++,后return x吗?

  • Willson1991    2019-06-17 11:33:25
  • 阅读 933    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信