zoukankan      html  css  js  c++  java
  • return与finally的执行顺序对返回值的影响

    对于 try 和 finally 至少一个语句块包含 return 语句的情况:

    • finally 语句块会执行
    • finally 没有 return,finally 对 return 变量的重新赋值修改无效
    • try 和 finally 都包含return,return 值会以 finally 语句块 return 值为准

    如下面的例子

     public static void main(String[] args) {
            System.out.println(getString());
        }
        
        public static String getString() {
            String str = "A";
            try {
                str = "B";
                return str;
            } finally {
                System.out.println("finally change return string to C");
                str = "C";
    //            return str;
            }
        }

    打印

    finally change return string to C
    B

    finally 语句块中新增 return 语句

       public static void main(String[] args) {
            System.out.println(getString());
        }
        
        public static String getString() {
            String str = "A";
            try {
                str = "B";
                return str;
            } finally {
                System.out.println("finally change return string to C");
                str = "C";
                return str;
            }
        }

    打印结果

    finally change return string to C
    C

      

    来一道刷了进BAT的面试题?

  • 相关阅读:
    文件夹打开对话框
    文件打开对话框
    HOOK函数(二)——全局HOOK
    HOOK函数(一)——进程内HOOK
    抓包
    List 访问
    坑爹的EL 表达式。
    tomcat 虚拟目录的安全问题
    框架
    程序员相关词汇
  • 原文地址:https://www.cnblogs.com/ConstXiong/p/11801123.html
Copyright © 2011-2022 走看看