面試的時候,經常會被問到finally的用法,是否一定會執行,有return的情況會怎麼樣?
大多數應該都認為finally 是一定會被執行的,其實不然。看下面的**:
public int getnum()
try
} catch (exception e)
finally
return num;
}
通過測試發現,如果程式不執行try語句塊,那麼就不會執行finally。jvm具體如何操作,不知道。
下面討論第二種情況,進了try語句塊,finally還執行嗎,是在return之後執行,還是return之前執行,通過斷點測試:
會先執行return num; 進行返回,但沒有返回,下一步跳到finally語句上,執行finally語句,最後再跳到return語句上進行返回。這一系列的步驟大家可以打斷點測試一下,想深入研究可以自己研究一下jvm是如何工作的。
特殊情況:也不會執行finally
system.exit(0); 退出虛擬機器,自然不會執行finally
執行緒中斷。
用心,就一定會幸福
一直覺得,自己不是乙個幸福的人。面對太美好的事物,反而容易擔心,這是做夢吧?怎麼可能有這樣的幸運降臨到自己身上呢?要不然就會想,是不是很快就會消失了呢?然而,要命的完美主義又讓我無法輕易地得過且過 生命於是變成了一場詭計,它安排我去追逐乙個又乙個可能一輩子也無法實現的夢,在過程中我還不斷的檢視自己,...
看完你一定會安裝閥門!
01閥門定位器的安裝和校準 閥門定位器svp經設計可承受嚴苛的操作條件。但是,安裝位罟必須滿足某些標準,否則可能產生非預斯操作。閥門定位器旨在在以下條件下操怍 環境溫度為 40 c 80 c相對濕度為10 90 溫度和顯度不突然變化磁場感亞未超過400a m。避免格svp安裝在大型變壓器高頻電爐等裝...
MqSql一定一定會索引失效的幾種情況
使用explain查詢 檢視key是否命中索引 1.表層面,兩個表關聯時,如果兩個表關聯欄位的的編碼不同,不會走索引。如乙個表時 utf8,另外乙個表是utf8mb4 2.like查詢是以 開頭,索引不會命中,放後面會命中 3.如果查詢時,查詢的字段型別沒有寫對,底層會隱式處理加上函式,不會命中 4...