java中try和finally中return语句的执行问题

今天看到有技术群里议论这个问题,虽然很少用但是也是一个知识点,在此做一个小记录

1.先附上两张结果图

(1)finally中不包含return的情况

java中try和finally中return语句的执行问题

(2)finally中包含return语句的情况

java中try和finally中return语句的执行问题

2.解释说明:因为第一个finally里面没有return,所以他对return改变不了,try里面的return会暂存下来,有个缓存区,finally只是改变了i的值没有改变到return缓存区的值而第二张图中finally里面有return语句所以改变了return缓存区的信息。

3.操作对象的结果

java中try和finally中return语句的执行问题