前几天遇到的一道面试题,就是在一个类的内部添加该类的内存回收函数,类似于C++的析构函数,希望可以回收该类的成员变量和字段。
我只是知道finalize函数,具体的内容怎么写啊,各位大侠给个例子。还有,比如函数的名字有没有什么特殊的规定,比如构造函数就是必须和类名相同。
我也知道java是系统自动回收内存的。这样的面试题不知道是为了考察什么.

解决方案 »

  1.   

    public void finalize(){
    //容器的清空
    ***.clear();
    //监听的删除
    remove...Listener(listner);
    //其他对象的释放
    ...
    }
      

  2.   

    public void finalize() throws Throwable {
        //你自己的清理工作
        super.finalize();  //这句最关键
    }
      

  3.   

    在哪里创建的就要在哪里销毁。有时候做个大的系统,不调用finalize方法,也要定义一个 destroy 这样的“析构”函数,来销毁对象内部的属性,尤其是一些容器属性。