你java Frog finalize一下看看结果是什么?赫赫(*_*)

解决方案 »

  1.   

    加上finalize参数仍然和书上的结果不对应啊?
    而且,这个程序中的finalize参数只是用来控制是否执行其所继承的父类的finalize方法的,成员对象Characteristic的清理和加不加finalize没关系啊。?
      

  2.   

    the book is right. check your program
      

  3.   

    To wobelisk()
    这个程序和书上给出的是一样的,已经核对过多次了。先看过这本书的先驱们,不知你们有没有把这个程序敲出来执行过。如果执行了,结果和书上给出的结果一致吗?
      

  4.   

    finalize()方法是在对象被垃圾收集器回收的时候,被自动调用。但问题是你没有任何方法决定垃圾收集器何时启动,这完全取决于当时的运行状态(剩下多少内存,等等),因此不能确定一个对象finalize()方法是否会被执行。你的运行结果和书上不一样式完全正常的。
      

  5.   

    以下是我的执行结果,是从command 窗口直接拷下来的。
    我比较同意 alienbat(死灵巫师) 的解释。Microsoft Windows [版本 5.2.3790]
    (C) 版权所有 1985-2003 Microsoft Corp.D:\Documents and Settings\Administrator>g:G:\>cd jtraningG:\jtraning>javac Frog.javaG:\jtraning>java  Frog
    Not finalize base
    Creating Characteristicis alive
    LivingCreature()
    Creating Characteristichas heart
    Animal()
    Creating Characteristiccan live in water
    Amphibian()
    Frog()
    Bye
    Frog finalize
    finalizing Characteristic is alive
    finalizing Characteristic has heart
    finalizing Characteristic can live in waterG:\jtraning>
      

  6.   

    同意 trumpet(小号)  的说法
      

  7.   

    <<trumpet(小号) :我比较同意 alienbat(死灵巫师) 的解释。>>
    干嘛还比较同意啊。
    楼主的意思是强制System.gc(),让系统作GC。但是问题在于,那点保证了强制GC一定就会导致你finalize被执行?