Java中的finalize()方法何時被呼叫?
finalize()方法在Java虛擬機器中有特定的用途( JVM)生命週期,及其時間安排對於理解至關重要。儘管實現它來記錄其調用,但您沒有看到任何輸出,從而引發了有關何時調用此方法的問題。
答案:
finalize() 方法是當 JVM 認為物件是垃圾時呼叫。這種情況發生在物件符合垃圾回收條件之後,這個過程隨時都可能發生。
需要注意的是,物件可能永遠不會被垃圾回收,要么是因為它仍然是可訪問的,要么是因為 JVM 沒有在程式執行期間執行垃圾收集。測試程序經常表現出這種行為。
雖然有機制強制 JVM 對未收集的物件呼叫 Finalize(),但由於保證不可靠,不建議這樣做。
在應用程式設計中,依賴用於基本操作的 Finalize() 是一個缺陷。其主要目的是為非Java資源提供清理機制,反映JVM呼叫其的不確定性。
以上是Java的finalize()方法什麼時候會被呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!