對象析構和finalize方法
Java能自動的進行垃圾收集,可以將finalize方法添加到任何類中,finalize方法會在垃圾收集器清除對象之前被調用。但是實際的操作中,不要依賴finalize方法回收任何短缺資源,因爲很難知道這個方法什麼時候才能被調用。
有個叫作System.runFinalizersOnExit(true)的方法可以確保finalize方法在Java關閉之前被調用。不過這個方法並不安全。另一種替代的方法是使用Runtime.addShutdownHook的方法增加“關閉鉤子”。
如果需要在資源使用完畢後關閉資源,那就需要進行手工的管理,對需要清除的資源使用dispose方法。重要的是,如果你使用的類含有dispose方法,你需要在對象操作完成後調用這個方法,尤其是,如果類的某個實例字段含有這個dispose方法,要提供一個釋放實例字段的dispose方法。
有個叫作System.runFinalizersOnExit(true)的方法可以確保finalize方法在Java關閉之前被調用。不過這個方法並不安全。另一種替代的方法是使用Runtime.addShutdownHook的方法增加“關閉鉤子”。
如果需要在資源使用完畢後關閉資源,那就需要進行手工的管理,對需要清除的資源使用dispose方法。重要的是,如果你使用的類含有dispose方法,你需要在對象操作完成後調用這個方法,尤其是,如果類的某個實例字段含有這個dispose方法,要提供一個釋放實例字段的dispose方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
TS + Webpack 整合 Jest
Higurashi-kagome
2024-05-31 14:33:27
安卓手機如何登錄抖音境外版
mingzhanghui
2024-05-31 14:31:17
嵌入式汽車電子學習路線
mingzhanghui
2024-05-31 14:31:17
Aspire項目發佈到win11本地k8s集羣
hiningrise
2024-05-31 14:30:37
Langchain試用百度千帆
人不瘋狂枉一生
2024-05-31 14:28:26
分享5款.NET開源免費的Redis客戶端組件庫
追逐時光
2024-05-31 14:27:26
golang開發 gorilla websocket的使用
飛翔碼農
2024-05-31 14:27:06
脣炎的治療
b2, 然後去口腔醫院開藥, 開的一個消毒的水,滴幾滴跟伊曲康唑碾碎了,弄成糊,塗嘴上, 過十分鐘會幹硬, 之後塗上黃黴素眼藥膏. 兩天效果就很好了.
張博的博客
2024-05-31 14:25:26
面試官:如果不允許線程池丟棄任務,應該選擇哪個拒絕策略?
JavaGuide
2024-05-31 14:24:36
(一)C#窗體應用程序打包發佈安裝到桌面全過程
代號六零一
2024-05-31 14:22:46
記一次 .NET某工業設計軟件 崩潰分析
一線碼農
2024-05-31 14:21:16
Mac卸載 Node npm,升級 Node
阿 軍
2024-05-31 14:20:35
Chrom 如何禁用JS
阿 軍
2024-05-31 14:20:35