- 输出结果为::“return value of getValue(): 1”
- 解释:根据官方的JVM规范:如果try语句里有return,返回的是try语句块中变量值。详细执行过程如下:
-
如果有返回值,就把返回值保存到局部变量中;
-
执行jsr指令跳到finally语句里执行;
-
执行完finally语句后,返回之前保存在局部变量表里的值。
-
如果try,finally语句里均有return,忽略try的return,而使用finally的return.
如果有返回值,就把返回值保存到局部变量中;
执行jsr指令跳到finally语句里执行;
执行完finally语句后,返回之前保存在局部变量表里的值。
如果try,finally语句里均有return,忽略try的return,而使用finally的return.