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

談談 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()方法,來整理系統資源或者執行其他清理工作。