位置:首頁 > 軟件操作教程 > 編程開發(fā) > Java > 問題詳情

當對象失效了,它就會從內存中移出,或者說是刪除。和對象創(chuàng)建時調用構造函數類似,Java在對象刪除時提供了調用析構函數的能力。構造函數的名稱使用類的名稱,與此不同的是,析構函數的名稱是 finalize()。 finalize()方法提供一個放置執(zhí)行清除對象的代碼的位置,如下定義: void finalize() { // 收尾工作 } 有必要指出的是,在 Java 中當對象失效時,不能保證 finalize()方法會被調用。這是因為 Java在系統(tǒng)垃圾收集(garbage collectio

提問人:榮凡88發(fā)布時間:2020-10-14

當對象失效了,它就會從內存中移出,或者說是刪除。和對象創(chuàng)建時調用構造函數類似,Java在對象刪除時提供了調用析構函數的能力。構造函數的名稱使用類的名稱,與此不同的是,析構函數的名稱是 finalize()。 finalize()方法提供一個放置執(zhí)行清除對象的代碼的位置,如下定義:

void finalize() {

 // 收尾工作

有必要指出的是,在 Java 中當對象失效時,不能保證 finalize()方法會被調用。這是因為 Java在系統(tǒng)垃圾收集(garbage collection)部分刪除掉了對象,這會在不定的時間間隔里發(fā)生。由于在Java 執(zhí)行一次垃圾收集前,對象并不會被真正地刪除掉,所以對象的 finalize()方法在此之前也不會被調用。知道這一點,就可以肯定地說不應該依靠 finalize()方法來完成任何和時間關鍵(time 

critical)相關的事情。通常你很少需要在 finalize()方法中放置代碼,因為 Java 在系統(tǒng)運行期間對 失效對象做了很好的清理工作。

繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部