一個對象是由產生 到使用 到銷毀的過程
即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對象回收的的方法,即使出現異常也不會影響執行