“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帶你學架構!
如果本篇文章對您有幫助,還請幫忙點個關注和贊,您的堅持是我不斷創作的動力,歡迎關注「跟著Mic學架構」公眾號公眾號獲取更多技術干貨!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/503350.html
標籤:其他
上一篇:Docker 搭建 Nexus3 私服 | 基本操作
下一篇:java中的一維陣列
