finalize方法
1.源碼
protect void finalize() throws Throwable { }
/*
1.finalize()方法只有一個方法體,里面沒有代碼,而且這個方法是
protected修飾的
2.這個方法不需要程序員手動調用,jvm的垃圾回收器負責調用此方法
3.執(zhí)行時機:當一個java對象即將被垃圾回收器回收的時候亏娜,垃圾回收器負責調用
finalize方法
4.finalize方法實際上是sun公司為程序員準備的一個時機解幽,垃圾銷毀時機
如果希望在對象銷毀時機執(zhí)行一段代碼的話剪验,這個代碼要寫到finalize方法當中
5.靜態(tài)代碼快的作用:
靜態(tài)代碼快在類加載時刻執(zhí)行毯欣,并且只能執(zhí)行一次
finalize是一個垃圾回收時機,不需要程序員來調用
6.java中的垃圾回收器不是輕易啟動的坚俗,垃圾太少,或者時間沒到岸裙,種種條件下有可能啟動猖败,
也有可能不啟動。
*/
public class TestFinalize {
public static void main(String[] args) {
//Person person = new Person();
//person=null;//將對象值設置為null降允,則該對象變成垃圾
/*
多造點垃圾恩闻,創(chuàng)建一百萬個對象
for(int i = 0;i<1000000;i++){
Person p = new Person();
p=null;
}
*/
//有一段代碼可以建議垃圾回收器啟動
Person person = new Person();
person=null;
System.gc();//建議垃圾回收器啟動,但不一定啟動剧董。
}
}
class Person{
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println("即將被銷毀");
}
}