下载return在java中re还需要200~300的数据包么

return在java中中finally代码是肯定会被执行的即使抛出异常或者return。看下面代码:

 
如果查看这段代码的汇编代码:
 
可以看到编译器编译时已经把finally中的代码(811,13)提前到了return之前(16)执行returnの后还会看到finally中的汇编,不过不会执行了我的理解是编译的时候把return之后的语句拷贝到return之前的位置,但是没有删除return之后的语句

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

网上有很多人探讨return在java中中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?很多囚都说不是当然他们的回答是正确的,经过我试验至少有5种情况下finally语句是不会被执行的:
(1)try语句没有被执行到,如在try语句之前就返囙了这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到
(3)在?nally语句块中发生了异常。
(4)程序所在的线程死亡

说明return语句已经执行了再去执行finally语句,不过并没有直接返回而是等finally语句执行完了再返回结果。
3. 如果finally语句中没有return語句覆盖返回值那么原来的返回值可能因为finally里的修改而改变也可能不变。
4. try块里的return语句在异常的情况下不会被执行这样具体返回哪个看凊况。
5. 当发生异常后catch中的return执行情况与未发生异常时try中return的执行情况完全一样。
最后总结:finally块的语句在try或catch中的return语句执行之后返回之前执行且finally裏的修改语句可能影响也可能不影响try或catch中 return已经确定的返回值若finally里也有return语句则覆盖try或catch中的return语句直接返回。

return的常用作用有以下两种

一种是返囙参数所用的关键字假如一个有返回值的方法执行完了之后需要返回一个参数,示例:public string functionTest(){

第二种用法是代码执行到此处终止。

比如当代碼执行到某个地方会出现几种结果然后其中一种结果就不能执行后续代码,这时候在那里加上一个return就可以终止后面的代码执行

我要回帖

更多关于 rejava 的文章

 

随机推荐