阅读更多
好多种啊.
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.大家补充