“finally 块肯定会执行吗?”
这是最近一个工作 3 年的小伙伴去面试的时候遇到的问题。
你遇到这个问题会怎么答复呢?
大家好,我是 Mic,一个工作了 14 年的 Java 程序员
对于这个问题,面试官想考查什么呢?
问题解析
这个问题,很显著是考查 Java 根底。
finally 语句块在理论开发中应用得十分多,它是和 try 语句块组合应用。
通常状况下,不论有没有触发异样,finally 语句块中的代码是必然会执行的,所以咱们会把资源的开释、或者业务日志的打印放在 finally 语句块外面。
所以,当大家把这个理念当成是固定的公式当前,就很少会去思考 finally 语句块什么状况下不执行。
这也是难倒很多求职者的起因,所以我认为这个问题次要考查两个方面:
- 对 finally 关键字的了解水平,其实就是考查 Java 根底,良好的 Java 根底可能写出更加稳固和健壮性的代码
- 是否具备对技术的摸索精力,这样的人在技术的成长速度上会比个别人更快
高手:
finally 语句块在两种状况下不会执行:
- 程序没有进入到 try 语句块因为异样导致程序终止,这个问题次要是开发人员在编写代码的时候,异样捕捉的范畴不够。
- 在 try 或者 cache 语句块中,执行了 System.exit(0)语句,导致 JVM 间接退出
总结
好了,明天的分享就到这里完结了
如果喜爱我的作品,记得点赞、珍藏、关注
版权申明:本博客所有文章除特地申明外,均采纳 CC BY-NC-SA 4.0 许可协定。转载请注明来自
Mic 带你学架构
!
如果本篇文章对您有帮忙,还请帮忙点个关注和赞,您的保持是我一直创作的能源。欢送关注同名微信公众号获取更多技术干货!