首先來看一段代碼
最終傳回什麼呢?可能你知道,但是相信有一部分人是懵了的,因為我們都知道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