final、finally、三個關鍵字的區別

一 final

若是一個類被聲明爲final,意味着它不能再派生出新的子類,不能做爲父類被繼承。所以一個類不能既被聲明爲 abstract的,又被聲明爲final的。將變量或方法聲明爲final,能夠保證它們在使用中不被改變。被聲明爲final的變量必須在new一個對象時初始化(即只能在聲明變量或構造器或代碼塊內初始化),而在之後的引用中只能讀取,不可修改。被聲明爲final的方法也一樣只能使用,不能覆蓋(重寫)。

二 finally

在異常處理時提供 finally 塊來執行任何清除操做。若是拋出一個異常,那麼相匹配的 catch 子句就會執行,而後控制就會進入 finally 塊(若是有的話)。
 

三 finalize

方法名。Java 技術容許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去以前作必要的清理工做。這個方法是由垃圾收集器在肯定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,所以全部的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其餘清理工做。finalize() 方法是在垃圾收集器刪除對象以前對這個對象調用的。注意:finalize不必定被jvm調用,只有當垃圾回收器要清除垃圾時才被調用。
相關文章
相關標籤/搜索