異常-面試題之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之final、finalize、finally的區別Java
- final,finalize,finally 的區別
- final,finalize,finally的區別
- final、finally、finalize的區別
- 【Java面試題系列】:Java中final finally finalize的區別Java面試題
- Java中final、finally和finalize的區別Java
- Java中final,finalize和finally的區別Java
- Java中final、finally、finalize的區別Java
- Java中final,finally,finalize的區別Java
- 闡述final、finally、finalize的區別
- final、finally、finalize()的區別(skycto JEEditor)
- 1.淺談final,finally,finalize的區別。
- final、finally與finalize三者的區別
- final、finally、finalize的理解
- 『Java 語法基礎』final、finalize 和 finally 的不同之處Java
- final、finally、finalize的詳細分析
- final,finally,finallize的區別
- 【java】final、finally、finallize的區別Java
- java中異常處理finally和return語句的執行順序Java
- java exception and finally returnJavaException
- c#之異常處理tcbs_try_catch_finallyC#
- finally語句在return執行之後,return返回之前執行
- 異常-finally關鍵字的特點及作用(面試)面試
- Python :淺析 return 和 finally 共同挖的坑Python
- JAVA常見面試題之Forward和Redirect的區別Java面試題Forward
- python異常處理中finally的作用Python
- 【搞定面試官】try中有return,finally還會執行嗎?面試
- java中的finally詳解(finally中沒有return i,卻有i=XX)Java
- python異常處理之returnPython
- return,continue和break之間的區別
- C++異常處理:try,catch,throw,finally的用法C++
- 【轉】java中異常與try catch finally詳解Java
- c# 異常處理try catch finally_throwC#
- [Java基礎]try-catch-finally 和 return 的執行順序Java
- JAVA的異常處理機制(一)——try...catch...finallyJava
- Java含有return 的try catch finally的執行順序Java
- [CareerCup] 14.2 Try-catch-finally Java中的異常處理Java
- 在Python中捕獲finally語句中異常訊息Python