java虚拟机怎样对内存垃圾进行管理呢?请大家指点一下

解决方案 »

  1.   

    参阅:
    http://www.javaeye.com/wiki/topic/379614
      

  2.   

    JVM有很多算法来确定对象是否为垃圾。判断对象是否为垃圾的标准时对象是否可达,可以简单理解为JVM能够通过一条路去找到他们,找不到的肯定就用不上,那么就是垃圾了。
    最简单的是引用计数,说通俗点就是JVM自己去数对象的引用,如果它发现引用为0个了就判断对象为垃圾。但这个算法是不安全的,孤岛(循环引用)对象就无法被回收。
    还有种方法叫暂停复制,就是在JVM空闲的时候把内部的东西全部复制到另一块区域,你可以把有用的对象理解为栓在一条绳子上的东东,复制就好比JVM拎着绳子的一头把所有东西放到另外的地方去,那么能被绳子令起来的肯定就是可达的对象了。这些是我自己的简单理解.