import Tool;
public class Test
{
    public Test() {
    }
    public static void main(String[] args)
    {
        Tool tool = new Tool();
        tool.a();
        tool.b();
    }    
}/*Tool*/
class Tool
{
public Tool()
{
c();
}
    public void a()
    {
        System.out.println("a");
    }
    public void b()
    {
        System.out.println("b");
    }
    public void c()
    {
        System.out.println("c");
    }
}这不是finalize()的问题,看看构造方法的概念吧

解决方案 »

  1.   

    很不幸,把finalize()作为像c++里的析构函数完全不可靠,JVM不能保证finalize()能被及时调用。
    java里有没有其他的途径可以达到你的需求就不清楚了,感觉很难找。
      

  2.   

    我的意思就是要实现类似C++中析构函数的用法,让Tool的实例运行结束前的最后一步,一定要执行c()方法。有好的解决方法吗?
      

  3.   

    我的意思就是要实现类似C++中析构函数的用法,让Tool的实例运行结束前的最后一步,一定要执行c()方法。有好的解决方法吗?
      

  4.   

    我的意思就是要实现类似C++中析构函数的用法,让Tool的实例运行结束前的最后一步,一定要执行c()方法。有好的解决方法吗?
      

  5.   

    不要用Finalize() 应该说编译器不能保证finalize中的程序一定在某个时刻运行。
      

  6.   

    你可以在Finalize() 的函数体中调用c;
    只是GC只有在内存快用完时才调用垃圾管理器,所以你需要调用system.gc()以强迫垃圾管理器回收对象空间,以调用Finalize() 函数