02-天亮大数据经典JavaSe笔试题系列之return和finally执行序问题

  • 题目:return和finally谁最后被执行? 并构造测试用例验证结论
    • return执行时,先会将表达式的值,置于返回栈的顶部(此为方法最终的返回值),然后去执行finally的代码。
    • return的最后返回值取决于return后边的表达式的返回值。
    • 此处共涉及三个执行操作:序号1是return最终返回操作、序号2是return后边的表达式、序号3是finally的执行,其执行顺序为序号2>序号3>序号1.
  • 构造一个TestCase测试用例
package com.tl.job005.test;
/**
* 基础数据类型测试
* @author zel
*
* @time:2019年3月25日
*/
public class TryFinallyTest {
   public static int i = 1;
   public static int ret() {
     try {
        i = 2;
        return (++i);
     } catch (Exception e) {
        e.printStackTrace();
     } finally {
        i = 10;
        System.out.println("finally i="  + i);
     }
     return 0;
   }
   public static void  main(String[] args) {
     System.out.println("ret返回的值=" + ret());
     System.out.println("最后的i值=" + i);
   }
}


//引用类型测试
package com.tl.job005.test;
/**
* 引用类型测试
* @author zel
*
* @time:2019年3月25日
*/
public class TryFinallyTest {
   public static StringBuilder  stringBuilder = new  StringBuilder();
   public static StringBuilder  ret() {
     try {
        stringBuilder.append("a");
        return  stringBuilder.append("b");
     } catch (Exception e) {
        e.printStackTrace();
     } finally {
        stringBuilder.append("c");
     }
     return stringBuilder;
   }
   public static void  main(String[] args) {
     System.out.println("ret返回的值=" + ret());
   }
}


天亮教育是一家从事大数据云计算、人工智能、教育培训、产品开发、咨询服务、人才优选为一体的综合型互联网科技公司。
公司由一批BAT等一线互联网IT精英人士创建,
以"快乐工作,认真生活,打造IT职业技能教育的一面旗帜"为愿景,胸怀"让天下没有难找的工作"使命,
坚持"客户第一、诚信、激情、拥抱变化"的价值观,
全心全意为学员赋能提效,践行技术改变命运的初心。

更多学习讨论, 请加入
官方-天亮大数据交流-366784928
群二维码:
这里写图片描述
官方-天亮web前端交流-972788995
群二维码:
在这里插入图片描述

欢迎关注天亮教育公众号,大数据技术资料与课程、招生就业动态、教育资讯动态、创业历程分享一站式分享,官方微信公众号二维码:
在这里插入图片描述

天亮教育大数据官方群318971238,
天亮教育web前端官方群318971238,
爬虫、nlp技术qq群320349384
hadoop & spark & hive技术群297585251
教育培训官网:http://myhope365.com
项目研发业务尚云科技官网:http://shangyuninfo.com/
天亮教育公开课-从小白到大佬修成记-全系列视频地址:http://myhope365.com/news/index?id=66

猜你喜欢

转载自blog.csdn.net/erliang20088/article/details/89510107