请教一个java代码执行问题

问题遇到的现象和发生背景 、

try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

finaly 会执行,在 return 之前执行。

img

参考:《Java 核心技术卷1》

望采纳,谢谢。

举个例子:


 public static int test() {
        try {
            int a = 1/ 0;
            return 1;
        } catch (Exception e) {
            return 2;
        } finally {
            System.out.println("finally");
            return 3;
        }
    }
//最后输出finally和返回3
 public static int test() {
        try {
            int a = 1/ 0;
            return 1;
        } catch (Exception e) {
            return 2;
        } finally {
            System.out.println("finally");
        }
    }
//最后输出finally和返回2

 public static int test() {
        try {
            int a = 1/ 1;
            return 1;
        } catch (Exception e) {
            return 2;
        } finally {
            System.out.println("finally");
        }
    }
//最后输出finally和返回1