JAVA里促进垃圾回收有多少种方法?

好多种啊.
1.设置为null,当然咯,不null就不被回收了。
2.程序调用Runtime.gc()(貌似)
3.调整jvm heap的分配:
  jvm heap分为young及tenured:
     young又分为eden,survivor,virtual.
     tenured分为virtual及perm(永久).


  垃圾回收主要会三个阶段
  1.eden空间的回收:
       对象在eden空间中创建,该空间满后,垃圾回收开始工作,回收无效对象所占用的空间
.并将该带中存活的对象拷贝到survivor
  2.survivor空间的回收:
       在survivor的对象足够老后,才拷贝到tenured.
  3.tenured的收回:
       perm中持有的对象是虚拟机本身的,例如类或方法对象,从字面理解,该块不进行回
收,更详细情况我并不了解

 如何调整参数一般需要根据具体应用的gc情况调整,如何知道gc情况呢?
  使用-verbose:gc选项。读物中提到的工具可以帮助进行分析。
  相关读物:
    http://java.sun.com/docs/hotspot/gc1.4.2/

http://developers.sun.com/techtopics/mobility/midp/articles/garbagecollection2/

4.soft reference,weak reference等的使用(这些没用过,只知道跟gc有关系)
5.大家补充

你可能感兴趣的:(java,jvm,工作,虚拟机,sun)