GCごみ回収メカニズムを徹底的に理解する.

1647 ワード

!この文章は転載しますhttp://blog.sina.com.cn/s/blog_6 b 9435 b 90101 fegf.は後で自分がもっと速く見つけて、分かりやすいようにします.
ごみ回収器は、すべての参照対象のないメモリ空間を回収する責任があります.
注意:ゴミ回収の対象は、対象自体ではなく、参照のない対象が占めているメモリ空間です.
  • System.gc()Runtime.getRuntime().gc()この2つの方法はJVMに一回のゴミ回収ができることを知らせるために用いられますが、ゴミ回収メカニズムは具体的にいつ運行するかは予知できません.
  • 2.finalize()メソッドは、オブジェクトが占有する関連リソースを解放する.
    ゴミ回収器が不要なオブジェクトのメモリを放出する場合は、まずオブジェクトのfinalize()メソッドを呼び出します.プログラムが終了するまでごみ箱がゴミ回収作業を行わないと、ごみ箱は不要なオブジェクトのfinalizeを呼び出さないことになります.なぜなら、finalize()はゴミ回収器が作動する時だけ呼び出されます.つまり、資源の放出を行うことで、すぐに釈放されることが確保されず、解放されないかもしれません.プログラムは、System.gc()やRuntime.gc()を明示的に呼び出しても、ゴミ回収操作が一定に行われることは保証されないため、不要なオブジェクトのfinalize()メソッドは必ず呼び出されます.
    finalize()方法について:
    Javaはfinalize()の方法を提供しています.ゴミ回収器はメモリを放出しようとする時、先にfinalize()を呼び出します.
      (1).         。
      (2).          。
      (3).          。
      (4).     finalize()      ,  JVM            ,               。
    
                            finalize  ,                   ,                  。  ,                 ,                  。
    
      finalize           :                     ,     finalize(),               ,           .      finalize(),                        .
    
      finalize()        ?
    
           
      1.     Garbage Collection     ,    System.gc()   .
      2.              finalize  。
      3.     finalize  
    
          ,     ,                  ,finalize()      ,  jvm   finalize()     ,    ,finalize()        ,       sun     finalize()   。
    
        finalize( )                 。                ,finalize( )      。            ——    ——finalize( )    。  ,                          ,     finalize( )           。
    
    
         :http://blog.sina.com.cn/s/blog_6b9435b90101fegf.html                   !