天天看點

try-finally【面試題】

首先來看一段代碼

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