Java基礎之:finalize方法--了解垃圾回識訓制
基本介紹: 當物件被回收時,系統自動呼叫該物件的finalize方法,子類可以重寫該方法,做一些釋放資源的操作
什么時候被回收:當某個物件沒有任何參考時,則jvm就認為這個物件是一個垃圾物件,就會使用垃圾回識訓制來銷毀該物件,在銷毀該物件前,會先呼叫finalize方法,
垃圾回識訓制的呼叫,是由系統來決定, 也可以通過System.gc() 主動觸發垃圾回識訓制.
簡單案例
package object;
/**
* finalize 主要是在面試中問到,但實際應用中 不重寫此方法,沒有必要
* finalize()方法:在垃圾被回收之前一定會呼叫的方法,
* System.gc(); 主動觸發垃圾回收
*/
public class Finalize_gc {
public static void main(String[] args) {
AA a = new AA("小范");
a = null; //我們理解的這個時候本應該是垃圾被回收了
// 但垃圾回收是到一定的時間之后才會回收,
//就好像,現在我們丟了一個垃圾在垃圾桶里,我們會第二天上午才去倒掉垃圾桶里面的垃圾
//主動觸發垃圾回收
System.gc();//垃圾回收,在程式的最后,才執行,
System.out.println("程式結束...........");
}
}
class AA{
private String name;
public AA(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
protected void finalize() throws Throwable {
System.out.println("回收:" + name);
}
}
輸出
程式結束...........
回收:小范
垃圾回收器介紹
1) 當物件沒有任何參考指向時,垃圾回收器就會將其當做垃圾,進行回收,
2) 垃圾回收器回收時機是不確定的,和當前系統有關系
3) System.gc(),可以加速垃圾回收器回收時機,但是也不是確定的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/233360.html
標籤:Java
