Java中final、finally和finalize的區(qū)別

1、final
final是修飾符。可以用來修飾類、方法、變量。

final修飾的類不能作為父類而被繼承。

final修飾的方法不能被重寫,但是可以被重載。

final修飾的基本類型的變量,可以看作是一個(gè)常量,可以在聲明的同時(shí)賦值,也可以在第一次使用之前賦值(事實(shí)上,任何變量在使用之前都必須先賦值),但是,一旦賦值完成,該變量的值將不可改變(不可重新賦值)。
值得注意的是,final修飾的成員變量不再分配默認(rèn)值,必須手動(dòng)賦值。
如果final修飾的是引用數(shù)據(jù)類型,那么代表的是引用的地址不可改變,但是地址內(nèi)的對(duì)象屬性值可以修改(聲明和定義同樣可以分開)。

2、finally
finally用于異常處理中,一般和try、catch一起使用(也可以沒有catch)。表示無論異常是否發(fā)生都會(huì)執(zhí)行。

try {

} catch(Exception e) {

} finally {

}

使用finally,可以保證如果在try塊中有異常拋出,finally中可以執(zhí)行一些必須完成的代碼邏輯,比如資源回收等。

3、finalize
finalize()是Object中定義的方法,子類可以重寫該方法。它用來釋放一些其他做法開辟的內(nèi)存空間(如使用native method開辟的空間),以及做一些清理工作(如某些資源的釋放)。GC在回收對(duì)象之前會(huì)調(diào)用該方法。

最后編輯于
?著作權(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)容