zoukankan      html  css  js  c++  java
  • Java的析构函数System的finalize()

    一个对象是由产生 到使用 到销毁的过程

    即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对象回收的的方法,即使出现异常也不会影响执行

  • 相关阅读:
    面向对象编程——设计模式之一
    mysql死锁——mysql之四
    Mysql基本类型(字符串类型)——mysql之二
    Mysql基本类型(五种年日期时间类型)——mysql之二
    Mysql基础教程——mysql之一
    JVM启动参数手册——JVM之八
    Thinkphp 框架2
    Thinkphp 框架
    流程(下)
    流程(上)
  • 原文地址:https://www.cnblogs.com/void-m/p/6232394.html
Copyright © 2011-2022 走看看