1. 程式人生 > >13.Java的finalize,finally,final三個關鍵字的區別和應用場景

13.Java的finalize,finally,final三個關鍵字的區別和應用場景

(1)final:可以作為修飾符修飾變數、方法和類,被final修飾的變數只能一次賦值;被final修飾的方法不能夠在子類中被重寫(override);被final修飾的類不能夠被繼承。

 (2)finally用在異常處理中定義總是執行程式碼,無論try塊中的程式碼是否引發異常,catch是否匹配成功,finally塊中的程式碼總是被執行,除非JVM被關閉(System.exit(1)),通常用作釋放外部資源(不會被垃圾回收器回收的資源)

 (3)finalize()方法是Object類中定義的方法,當垃圾回收器將無用物件從記憶體中清除時,該物件的finalize()方法被呼叫。由於該方法是protected

方法,子類可以通過重寫(override)該方法以整理資源或者執行其他的清理工作。(有可能物件會復活)