1. 程式人生 > >final、finally、finalize區別

final、finally、finalize區別

span class ati 線程 共享變量 exit 共享 tro 區別

final: final關鍵字 簡要說一下final關鍵字,final可以用來修飾什麽 final在類上表示該類不可繼承 final在方法上表示該方法不可被繼承重寫 final在變量上表示該變量初始化後不可修改 好處:提高了性能,因為系統在初始化時候就加載了該變量,final在多線程下可以安全的共享變量 finally: 用於try/catch語句中,一般一定會執行的代碼塊,常用於釋放資源 例如:
 public static void main(String[] args) {
        System.out.println(test(null));
        System.out.println(test(
"0")); System.out.println(test("a11")); } public static Integer test(String str) { try { return str.charAt(0) - ‘0‘; } catch (NullPointerException e1) { System.out.println(11); return 1; } catch (StringIndexOutOfBoundsException e2) {
return 2; }catch (Exception e3) { return 3; }finally{ System.out.println(4);//這個一定會在return之前執行 // return 4;//這個return會頂替掉前面的其它return } }

執行結果:

11
4
1
----------
4
0
----------
4
49

解釋:finally一般一定會在返回之前執行(也有特殊情況,比如中斷程序System.exit(0) ),一般用於釋放資源

finalize:

定義在java.lang.Object中,所以每個對象都有,它在gc啟動,該對象被回收時調用。

final、finally、finalize區別