一個對象是由產生 到使用 到銷毀的過程
即C++中 構造函數-> body->析構函數
在Java之中為了回收不需要的空間可以使用System類的finalize()
class A{
public A(){
System.out.println("A產生了!");
}
public void finalize(){
System.out.println("A消亡了!");
}
}
public class Thrd{
public static void main(String[] args) {
A a=new A();
a=null;//指向了其他,產生了垃圾
System.gc();//手工回收垃圾
}
}
結構:protected void finalize()Throws Throwable{}
拋出的是Throwable(Error+Exception)也就是說不管是否有異常,都會講這個對象消亡
拋出異常測試:
class A{
public A(){
System.out.println("A產生了!");
}
protected void finalize() throws Throwable{
System.out.println("A消亡了!");
throw new Exception("產生了異常");//實例化異常類+拋出異常信息
}
}
public class Thrd{
public static void main(String[] args) {
A a=new A();
a=null;//指向了其他,產生了垃圾
System.gc();//手工回收垃圾
}
}
異常並沒有拋出
final finally finalize區別
final關鍵字 定義最終類,常量
finally異常的出口
finalize對象回收的的方法,即使出現異常也不會影響執行
