首先来看一段代码
最终返回什么呢?可能你知道,但是相信有一部分人是懵了的,因为我们都知道try-finally代码中finally模块最终一定会执行。下面咱们通过java字节码指令来看看到底发生了什么。
首先找到.class文件,然后执行
javap -verbose Test.class >tt.tx
然后保存到tt.txt文件中
3 13 1 ret Ljava/lang/String;
.....其他部分省略
由字节码指令可以看出,显示把hello保存到本地变1和本地变量2中。后面返回的是本地变量2,所以返回的就是hello,通过现象看本质。
Java字节码指令可以参考官方的,也可以参考一个中文翻译的:
https://www.cnblogs.com/longjee/p/8675771.html