/* * 1:final,finally和finalize的區別 * final:最終的意思,能夠修飾類,成員變量,成員方法 * 修飾類:類不能被繼承 * 修飾方法:方法不能被重寫 * 修飾變量:變量變常量 * finally:是異常處理的一部分,用於釋放資源 * 通常來講,代碼確定會執行,特殊狀況:在執行到finally以前退出了 * 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());//30 } 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; } }