異常-面試題之final,finally和finalize的區別,如果在finally之前有return
package cn.itcast_07;
/*
* 面試題:
* 1:final,finally和finalize的區別
* final:最終的意思,可以修飾類,成員變數,成員方法
* 修飾類,類不能被繼承
* 修飾變數,變數是常量
* 修飾方法,方法不能被重寫
* finally:是異常處理的一部分,用於釋放資源。
* 一般來說,程式碼肯定會執行,特殊情況:在執行到finally之前jvm退出了
* finalize:是Object類的一個方法,用於垃圾回收
*
* 2:如果catch裡面有return語句,請問finally裡面的程式碼還會執行嗎?
* 如果會,請問是在return前,還是return後。
* 會,前。
*
* 準確的說,應該是在中間。
*
* 3:try...catch...finally的格式變形
* A:try...catch...finally
* B:try...catch
* C:try...catch...catch...
* D:try...catch...catch...finally
* E:try...finally 這種做法的目前是為了釋放資源。
*/
public class FinallyDemo2 {
public static void main(String[] args) {
System.out.println(getInt());
}
public static int getInt() {
int a = 10;
try {
System.out.println(a / 0);
a = 20;
} catch (ArithmeticException e) {
a = 30;
return a;
/*
* return a在程式執行到這一步的時候,這裡不是return a而是return 30;這個返回路徑就形成了。
* 但是呢,它發現後面還有finally,所以繼續執行finally的內容,a=40
* 再次回到以前的返回路徑,繼續走return 30;
*/
} finally {
a = 40;
return a;//如果這樣結果就是40了。
}
// return a;
}
}
相關文章
- 【Java面試題系列】:Java中final finally finalize的區別Java面試題
- final,finalize,finally的不同之處
- Java中final、finally、finalize的區別Java
- final、finally、finalize()的區別(skycto JEEditor)
- Java中final,finally,finalize的區別Java
- final:finalize:finally:
- final、finally、finalize的理解
- 徹底區分final.finalize,finally
- 『Java 語法基礎』final、finalize 和 finally 的不同之處Java
- final、finally、finalize的詳細分析
- final,finally,finallize的區別
- 【java】final、finally、finallize的區別Java
- 看完這篇 final、finally 和 finalize 和麵試官扯皮就沒問題了
- java exception and finally returnJavaException
- 異常-finally關鍵字的特點及作用(面試)面試
- finally語句在return執行之後,return返回之前執行
- 【搞定面試官】try中有return,finally還會執行嗎?面試
- python異常處理中finally的作用Python
- python異常處理之returnPython
- return,continue和break之間的區別
- [Java基礎]try-catch-finally 和 return 的執行順序Java
- 【轉】java中異常與try catch finally詳解Java
- final和finalize
- JAVA的異常處理機制(一)——try...catch...finallyJava
- 在Python中捕獲finally語句中異常訊息Python
- 面試之 get 和 post 區別面試
- return與finally的執行順序的影響(skycto JEEditor)
- 有return的情況下try catch finally的執行順序
- (轉)有return的情況下try catch finally的執行順
- java面試題之Thread的run()和start()方法有什麼區別Java面試題thread
- 程式碼安全測試第二十一期:從finally塊中return漏洞
- 異常-編譯期異常和執行期異常的區別編譯
- 體面編碼之異常日誌和測試處理
- exit和return的區別
- GET 和 POST 的區別(重要,面試常問)面試
- [Java基礎]FinallyJava
- try-catch-finally的使用
- 多執行緒面試題之sleep()和wait()方法有什麼區別?執行緒面試題AI