try 和 catch 中有 return 时,finally 还会执行吗?返回值是什么?
先自己想一想,再看参考要点
参考要点
- 会执行,finally 在离开 try 语句之前执行
- 返回值在执行 finally 之前已经保存,返回基本类型时 finally 修改变量不影响返回值,返回引用时能看到对对象的修改
- finally 中的 return 会覆盖返回值并吞掉异常
- 调用 System.exit()、kill -9 或 JVM 崩溃时 finally 不执行
参考要点
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。