final、finally、finalize的區(qū)別

final修飾符(關(guān)鍵字)

  1. 被final修飾的類不能再派生子類,稱為終態(tài)類(所以,一個(gè)類不能既被final修飾又被abstract修飾)。
  2. 被final修飾的方法不能被子類重寫(但可以重載)。
  3. 被final修飾的變量不能被再次賦值,有且只能有一次賦值,稱為常量(靜態(tài)常量可以在聲明時(shí)或靜態(tài)代碼塊中賦值,普通常量可以在聲明時(shí)或構(gòu)造函數(shù)中賦值)。
  4. final也可以聲明在方法的形參上,表示形參為常量,不能被篡改(實(shí)參可以是未被final修飾的變量)。

finally是在異常處理時(shí)提供finally塊來執(zhí)行清除操作的。

在異常處理時(shí),finally塊中的代碼始終會(huì)被執(zhí)行。

try {
    System.out.println("try");
    int i = 1/0;
} catch (Exception e) {
    System.out.println("catch");
    int i = 1/0;
} finally {
    System.out.println("finally"); //finally塊中的代碼始終被執(zhí)行
}
//運(yùn)行結(jié)果:
try
catch
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at cn.huazai.main.collection_interface.QueueExample.main(QueueExample.java:29)
finally

finalize:Object類中的一個(gè)方法

java技術(shù)允許使用finalize()方法在垃圾收集器(GC)將對(duì)象從內(nèi)存中清除之前做必要的清理工作。這個(gè)方法是GC在確定了被清除對(duì)象沒有被引用的情況下調(diào)用的。

finalize是在Object類中定義的,因此,所有的類都繼承了它。子類可以覆蓋finalize()方法,來整理系統(tǒng)資源或者執(zhí)行其他清理工作。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容