Java垃圾收集的不足处理

来源:互联网 发布:java jdk for mac 编辑:程序博客网 时间:2024/04/28 07:56
Java垃圾收集的不足处理
JAVA使用成熟的后台垃圾收集技术来代替引用计数。但这样也必须在使用完对象的实例变量以后进行手动回收。
比如有这样一程序:
AObject ao = new AObject();
Map m = new HashMap();
m.put(aoname, ao);
...
m.clear();

这时 Map 虽然被消除, 但放在里面的 ao 对象并没有消毁, 它仍然存在, 这时就必须手动把 ao 回收, 应该这样写:
AObject ao = new AObject();
Map m = new HashMap();
m.put(aoname, ao);
...
m.clear();
ao.close(); //如果有对应的方法
或用 System.gc(); 来催促系统尽快释放不用的占用内存的垃圾(实例)