1.再垃圾收集之前系统会运行finalize方法。
2.作用域是指一个变量的存货范围。
3.不懂你什么意思。

解决方案 »

  1.   

    1.you can read the src under the sdk path,if so you will get the complete answer
    2.agree up
    3.because the GC will collect it auto.
      

  2.   

    我就不管GC是怎么回收的。
    finalize什么时候运行鬼知道,因为GC是在需要时才会去回收内存的。
    详细的可以看看msdn我就是白骨礼
    http://baiguli.vip.sina.com
      

  3.   

    <<1.finalize方法是否一定要运行在垃圾收集之前 ? 为什么?? 会出现什么问题~~>>终结方法不是在垃圾收集之前运行,而是由GC来运行,准确地说:这个方法在GC释放对象之前必须运行。
    也恰恰是这个终结方法使得Java虚拟机的垃圾收集工作更加复杂了。因为垃圾收集器必须检查它所发现的不再被引用的对象是否存在finalize()方法。如果存在终结方法,垃圾收集器必须每次在收集的时候执行一些额外步骤。大致是这样的:垃圾收集大家可能都知道,需要执行两遍扫描,也就是通常所言的“先扫后收”。在第一次扫描的时候,垃圾收集器需要使用某种方法来检测不再被引用的对象,然后它会检查这些对象是否声明终结方法。如果时间允许,可能会在此时垃圾收集器处理这些存在的终结方法。
    执行完所有的终结方法之后,垃圾收集器会从根节点开始再次检测不再被引用的对象,这也就是“第二次扫描”,为什么需要第二次呢?因为终结方法可能“复活”一些不再被引用的对象。最后才是释放的步骤,垃圾收集器会释放在两次扫描中都没有被引用的对象。