会执行,在方法return动作之前,return语句执行之后,若finally中再有return语句,则此方法以finally的return作为最终返回,若finally中无return语句,则此方法以try的return作为最终返回。
P:方法的返回值以最后一个执行return语句的运算结果为准,返回值一旦确定,不随之后执行的代码影响。
测试程序:
public static void main(String[] args) {    
  System.out.println(test());
  System.out.println("finish..");
 }
private static int test() {
  int b = 20;
  try {
   System.out.println("try block");
   return b += 80;
  }
  finally {
   System.out.println("finally block");
   if (b > 20) {
    System.out.println("b = " + b);
   }
    // 若此行取消注释,参见输入2
    // return 1;
    // 若此行取消注释,参见输出3
    // b --; // 方法的返回值在finally之前已经定了(可以理解为每个方法都有一个用来保存return值的内存空间),在此再修改b并不会影响返回值。
  }
 }
输出:
try block
finally block
b = 100
100
finish..
输出2:
try block
finally block
b = 100
1
finish..
输出3:
try block
finally block
b = 100
100
finish..

Java - 若try中有return语句,finally会执行吗?在return之前还是之后呢?的更多相关文章

  1. try catch finally语句块中存在return语句时的执行情况剖析

    2种场景 (1) try中有return,finally中没有return(注意会改变返回值的情形);(2) try中有return,finally中有return; 场景代码分析(idea亲测) 场 ...

  2. Java中try、finally语句中有return时的执行情况 [转]

    原文:http://kingj.iteye.com/blog/1436761 在Java中当try.finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行,大 ...

  3. Java finally语句到底是在return之前还是之后执行?

    网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下fina ...

  4. 【转】Java finally语句到底是在return之前还是之后执行?

    网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过试验,至少有两种情况下final ...

  5. 0016 Java学习笔记-异常-如果try-catch-finally中都存在return语句会怎样?

    上午在搜索"System.runFinalization"的时候,搜到 http://www.cnblogs.com/Skyar/p/5962253.html ,其中有关于try- ...

  6. java中异常处理finally和return语句的执行顺序

    finally代码块的语句在return之前一定会得到执行 如果try块中有return语句,finally代码块没有return语句,那么try块中的return语句在返回之前会先将要返回的值保存, ...

  7. Java中break、continue、return语句的使用区别

    break.continue.return之间的区别与联系 在软件开发过程中,逻辑清晰是非常之重要的. 代码的规范也是非常重要的.往往细节决定成败.在编写代码的时候,一定要理解语言的作用以及使用的方法 ...

  8. 有return语句情况下,try-catch-finally的执行顺序

    重要结论: 1.不管有没有出现异常,finally块中代码都会执行 2.当try和catch中有return时,finally仍然会执行 3.finally是在return后面的表达式运算后执行的(此 ...

  9. return语句的用法

    1.return语句的作用:a.返回一个值,这个值可以是任意类型.b.使程序返回到操作系统(即终止程序)2.java中对于一个函数,不论有没有返回值类型,都可以带有return 语句.但是区别在于,r ...

随机推荐

  1. HDU 6447 YJJ’s Salesman (树状数组 + DP + 离散)

    题意: 二维平面上N个点,从(0,0)出发到(1e9,1e9),每次只能往右,上,右上三个方向移动, 该N个点只有从它的左下方格点可达,此时可获得收益.求该过程最大收益. 分析:我们很容易就可以想到用 ...

  2. oracle(三)

    /****************************表空间 start****************************/ --表空间的作用 /** 1.决定数据库实体的空间分配 2.设置 ...

  3. linux 编程笔记 2

    1.使用create建立文件: #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include ...

  4. CONCAT substr group_concat find_in_set

    (SELECT p.*,(SELECT CONCAT(m.name,m.id) FROM service_fastfix_category m WHERE m.id=SUBSTR(p.id,1,4)) ...

  5. js、jquery报错

    js.jquery一直报错,是myecplise的问题, 右键项目->属性->builder->js validate去掉单个文件出错 右击文件->myecplise-> ...

  6. B/S模式获取客户端IP地址

    using System.Web; namespace Common { public class IPUtil { /// <summary> /// 获取IP地址 /// </s ...

  7. css最佳实践(reset.css)

    html, body, div, span, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,abbr, address, cite ...

  8. 未整理js

    函数+对象=方法 方法是动作 有参数的函数=实例 使用new关键字和函数来创建一个实例 var p =new Point(1,1)//平面几何的点 表示遍历的语句样子: for(var i =0; i ...

  9. arcgis textsymbol overlap

    arcgis  textsymbol   overlap   textsymbol  重叠的问题  du?de?  duration??    arcgis  for  javascript 如何避免 ...

  10. SQLserver2005描述对数据的调用

    SQL Server2005 采用了下面的4部分结构 服务器名称.数据库名称.架构名称.数据对象名称