談談final, finally, finalize的區別

1、final 修飾符(關鍵字)

如果一個類被final修飾,意味着它不能再派生出新的子類,不能作爲父類被繼承。因此,一個類不能既被聲明爲abstract,又被聲明爲final。

如果一個方法被final修飾,意味着它只能被使用,不能被重寫(override)。

如果一個變量被final修飾,意味着它在使用過程中,不可以被改變。而且,被final修飾的變量的初始化有兩種方式:1、在final變量定義時直接給其賦值;2、在構造器中。這兩個地方只能任選其一,不能同時賦值。

2、finally

在異常處理時提供finally塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的catch字句就會執行,然後控制就會進入finally塊(如果有的話)。就算不拋出異常,如果有finally塊,也是會執行的。

3、finalize

finalize是方法名。java技術允許使用finalize()方法在垃圾收集器將對象從內存中清除之前做必要的清理工作。這個方法是在垃圾收集器在確定了,被清理對象沒有被引用的情況下調用的。finalize是在Object類中定義的,因此,所有的類都繼承了它。子類可以覆蓋finalize()方法,來整理系統資源或者執行其他清理工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章