對象的自動清除
- 垃圾回收:對象回收是由Java虛擬機的垃圾回收線程來實現的
- 任何對象都有一個引用計數,當其值爲0時,說明該對象可以回收
System.gc()方法:System類的靜態方法,使程序主動的申請進行垃圾回收
析構方法
- java中沒有析構方法(對象釋放時調用的方法),但在Object的finalize()有類似的功能
- 可以在子類的finalize()方法釋放系統資源
- 一般來說,子類的finalize()方法中應該調用父類的finalize(),以保證父類的清理工作能夠正常進行
try-with-resources
- 由於finalize()方法的時機實際不確定,所以一般不用finalize()
- 關閉打開的文件、清除一些非內存資源等工作需要進行處理,可以使用該語法
- 對於實現了java.lang.AutoCloseable的對象,會自動調用其close()方法