這道面試題,出錯率90%

2021-01-07 田維常

大多數公司針對初級、中級都會有筆試的這個環節,甚至很多高級面試也存在筆試環節。對於筆試大家千萬不要掉以輕心,筆試題做不好,很有可能面試就黃了或者隨便找個面試官應付一下就可以回去等通知了。

今天我們分享的這個面試題,出現的頻率是相當高。

案例

我們先上代碼:

運行上面這段代碼,輸出什麼?

是"蒼老師"還是"小澤"?

其實,對於java開發者來說,finally已經是老熟人了。

有時候,程序在try塊裡打開了一些物力資源(比如:資料庫連接,網絡連接、磁碟文件等),這些物力資源都是必須要我們手動回收。那就該它出場了---finally。

一個完整的java異常處理結構如下:

為了保證一定能回收try模塊中打開的物力資源,一場極致提供了finally模塊。不管try模塊中的代碼是否異常,也不管是哪一個catch被執行,甚至try或者catch模塊中執行了return語句,finally模塊總會被執行。

try、catch、finally三者的組合關係為:

在前面已經提到了,不管try裡是否有異常,不管try或者catch是否有return語句,finally裡的代碼塊會執行。

如果在try模塊沒有發生異常,那麼代碼正常執行完畢,在執行finally模塊。如果try模塊發生異常並且被catch模塊捕獲了,那麼在catch模塊內的代碼執行結束後再執行finally模塊。如果try模塊中有異常並且沒有catch模塊或者沒有被catch模塊捕獲到,那麼在異常被跑出去之前執行finally模塊。於是乎,很多人就認為答案是:小澤

運行代碼,輸出的居然是:蒼老師

是不是很懵逼?為什麼是「蒼老師」?

不著急,下面我們來好好分析分析。

我們先通過javac編譯,再通過javap命令查看看字節碼內容。內容如下:

整個過程

第一步:將"蒼老師"放入操作棧中,然後將操作數棧中的數據保存在本地變量1中,將本地變量1放入操作數棧中,然後將操作數棧中的數據保存在本地變量2中。

第二步:將「小澤」放入操作棧中,然後將操作數棧中的數據保存到本地變量1中。

第三步:將本地變量2放入操作數棧中,將操作數棧中的數據返回。

所以上面的面試題,最終返回的是蒼老師。

另外,如果在try模塊出現異常,那麼也是在finally模塊執行完了再向外面拋出異常的。

調用這個方法必然會出現異常:

從輸出日誌中可以看出,異常時在finally模塊後執行。

例外

如果我們在try模塊代碼中有下面這行代碼,finally模塊就不會執行了。

System.exit(0);

總結

本文講述了finally如何使用。以及哪些情況下finally模塊會執行,哪些情況下不會被執行,finally模塊和try模塊的關係。希望大家不管是在工作中還是面試都能輕鬆應對。

沒有學不好的技術,只有不愛學習的人~

相關焦點

  • iOS 面試之道:117 道 iOS 面試題全解析
    因為這一系列的因素,促使我有強烈願望改變技術書出版流程和售賣方式,大致七八個月前道長和巧哥跟我聊到計劃從面試的角度寫一本系統的 iOS 技術書籍時候,我們一拍即合,有了今天的這次合作。好了,接下來該認真聊下今天的主角《iOS 面試之道》了。
  • 被這10道Java面試題虐哭了
    借這個機會,我就把小王遇到的這 10 道面試題分享出來,希望能對其他小夥伴一些幫助。小王之所以沒答對這道題,是因為在他的刻板印象中,finally 語句是無論如何都會執行的。在這段程序中,我們通過一個字符數組創建了一個字符串對象,然後調用 String 類的 getByte() 方法得到字節數組並將其列印到控制臺。這道面試題考察的核心並不是最終的列印結果(結果是不確定的),而是字符編碼。
  • 一年級數學等式題,小學生又不會做了,出錯率很高
    又是等式題,而這類題目,恰恰是孩子們最容易做錯的,出錯率特別高。一起來看看題目吧:這道數學題,是這樣的,前面一個算式,後面需要填寫三個,這四個算式呢,得數都要相等,比如第一組,得數都要等於13,第二組呢,得數都要等於11。
  • 這人際溝通面試題,90%的人都答錯
    下面用三種典型題型教你自如應對面試中的人際溝通問題。【解析】這道題的核心在於我們解決矛盾的順序:專家、領導、小王。意見衝突型【例題】(2015年5月17日廣東鄉鎮)有一筆扶貧資金,需要發放到貧困戶手中,有領導認為不需要調研,直接平均分配就好,你怎麼辦?
  • 2020河北省考面試幾道題
    2020河北省考面試幾道題?2020河北省考查詢入口已經開放,現在面試無疑牽動著每一名考生的心,已經有很多考生詢問面試相關問題,為了幫助各位考生備考面試,衡水人事考試網特整理河北公務員面試相關資訊,供各位考生參考。
  • 這6道三年級的數學智力題,90%的家長看了直搖頭,你能做對幾道?
    這6道三年級的數學智力題,90%的家長看了直搖頭,你能做對幾道?小編看到自己一個朋友家的孩子的小學三年級的幾道數學智力題,想了半天不會做,真是有點臉紅了,在這裡我們把它分享給大家,看你們會做幾道。買汽水問題上面這道買汽水問題很有趣,給的條件是1瓶汽水賣1元,兩個空汽水瓶可以換1瓶汽水,現在給你20元錢,問你可以最多總共喝多少瓶汽水?
  • 公務員面試幾道題?公務員面試答題時間如何安排?
    公務員面試幾道題?公務員面試答題時間?四川華圖教育小編了解到的情況,2019年下半年四川公務員筆試已經結束了,對於很多參加四川公筆試的同學來說,下一步就是進入面試的問題了。對於,很多初次參加面試的同學來說,對四川公務員面試的情況還不是很清楚,今天,小編就和大家聊聊四川公務員面試的兩個問題,一個是公務員面試幾道題?另一個是公務員面試答題時間?
  • 2021國家公務員面試形式是什麼 國考面試一般幾道題內容
    2021國家公務員面試形式是什麼 國考面試一般幾道題內容 2021國家公務員面試形式是什麼 國考面試一般幾道題內容對於接下來的2021國家公務員面試,各位考生是否充滿了疑惑
  • 2020國家公務員面試一般幾道題 多長時間
    二、稅務系統基本考情1.面試形式:結構化小組。2.面試題量:每天1套題,每套3道題目。五、科技部基本考情1.面試形式:無領導、結構化、半結構化均有涉及。2.面試題量:2020年以前,結構化,一套題,一般分為上下半場,總題量5-6道不等。2020年無領導一套題,結構化一套題,結構化4道題。3.面試時間:2020年以前結構化上下半場共計40分鐘左右。
  • 7道智力趣味題:90%的人只能做對兩道,你能做對多少?
    今天我們就一起來做7個非常有意思的趣味智力題,而且難度不小,90%的人只能做對兩道,你來試試看你能做對幾道。一、成語補全這道題考驗的是大家的語文成語功底,圖中每一行都是一個成語,要求把成語補充完整,而且所補充的字,還是一句節日祝福語。
  • 聽說這10道Java面試題90%的人都不會!!!
    這是一個真正艱難的核心Java面試問題,並且需要對 String 的紮實知識才能回答這個問題。這是最近在 Java 面試中向我的一位朋友詢問的問題。他正在接受技術主管職位的面試,並且有超過6年的經驗。如果你還沒有遇到過這種情況,那麼字符數組和字符串可以用來存儲文本數據,但是選擇一個而不是另一個很難。
  • leetcode 刷500道題,筆試/面試穩嗎?
    一、先說說筆試題在刷 leetcode 的時候,你會發現,每道題的題意都很短,你只需要花十幾秒的時間,就知道這道題是要你幹嘛了,並且每道題所用道的算法思想都很明確,動態規劃、遞歸、二分查找等,你可能很快就知道該用哪種方法,只是你不懂如何把代碼寫出來而已。
  • 2020山東事業單位面試熱點題100道
    您現在的位置:首頁 > 事業單位 > 閱讀資料 > 面試 > 2020山東事業單位面試熱點題100道 2019-12-27 11:43:15| 來源:山東中公教育
  • 45秒內答對這道題的人,邏輯有多強?數學老師:90%的人做不到
    說了這麼多,或許小夥伴們也想知道自己的邏輯思維能力到底如何,那麼今天小磊就和大家分享1到關於邏輯思維能力的題目,如果這道題目你能夠在45秒內答對,那麼你的邏輯思維能力是非常強大的,對此數學老師也表示:90%的做不到。邏輯題:乙是哪國人?
  • 初一數學期末考試試卷分享,有幾道題孩子出錯率還是很高的
    初一數學期末考試試卷分享,有幾道題孩子出錯率還是很高的(含答案)期中考試已經過去一段時間了,接下來比較重要的一次考試是學校裡將要舉行的期末考試,很多同學已經把初一上冊的數學內容預習完了,他想檢測一下自己預習的情況,接下來老師來分享一份初一數學期末考試試卷
  • 10道虐心的Java面試題,被面試官虐哭了,同事一題都沒答對
    有一天,小王告訴我,他去一家公司面試 Java 崗,結果被面試官虐哭了。整整 10 道 Java 面試題,小王一道也沒答正確。  他沮喪地給我說,「哥,說點我的情況,你願意聽嗎?我和一個女孩相處,女孩大我兩歲,我非科班。本來打算國慶換一家薪水高點的,好確認關係。
  • 500道Java 必備面試題答案(過後即刪)
    其實,很多面試者在搜集面試資料的時候都踩過一些「坑」,你是不是也遇到過:免費搜索的面試題,內容不全面,這就算了,有時候答案都不準確;很多培訓機構提供的面試寶典內容雖然不少,但深度不夠,且面試題過於老舊脫離了企業實際需要;還有很多付費的面試題存在濫竽充數,提供了很多沒有價值的面試題,錢花了,乾貨沒學到;
  • 2021國考面試考什麼?幾道題?答題時間多長?
    國考面試有幾道題?面試形式面試的形式主要有三種,即結構化,無領導和半結構化。結構化:這是最廣泛的面試考察形式。一般考試時間15-25分鐘,題量3-5題,考察題型包括:人際關係,綜合分析,計劃組織協調等。
  • 「秒殺」面試官,你只差這10道Python面試題
    哎呀!不多說了!胡陽老師就要來了,趕緊先看看這 10 道面試題。這十個問題可能只是面試的開始,要知道技術類的面試要是聊的嗨了,聊一兩個小時是常事兒。所以,如果你在面試,這十個問題你要怎麼來答呢?Q1:PEP8是什麼?
  • 這道中考物理題無意中透漏了初中畢業與高中畢業差別有多大!
    由於初中只是側重於從定性角度分析摩擦力,特別是初中基本不太涉及靜摩擦力和滾動摩擦力,很多初中物理教材從未提及靜摩擦力和滾動摩擦力這三種摩擦力的概念!這導致初中生在涉及到摩擦力時很多問題無法從根本上理解掌握。這是由於初中與高中相應的學習階段以及接受能力造成的,初中生並不需要太深入掌握更多內容。