问题描述
定义了Person类,并且生成了Person类的对象数组,但是将对象数组置空后监测内存,发现Person类所用到的数据和Image等依然存在与内存中,就连在主线程里重复置空也没有效果,对象数组不为空,可以继续引用...求大神求解。没有重复加载...
解决方案
解决方案二:
是不是所有引用都置空了?只置空一个引用其他引用当然还能访问到比如abc都指向一个int[10]a=null了bc还是指向int[10]的所以内存不会被回收的
解决方案三:
楼主你写的对象数组,在取出后估计未置空,实际上造成内存泄露。
解决方案四:
还有置空后GC不会立即回收垃圾内存具体什么时间回收GC也无法保证
解决方案五:
LZ可以看看这个Java的内存泄漏http://mopishv0.blog.163.com/blog/static/54455932200981695814252/
解决方案六:
该回复于2011-02-10 11:27:44被版主删除
解决方案七:
这貌似是一道面试题。Image[]images=newImage[10];for(inti=0;i<images.length;i++){images[i]=newImage[i];images[i]=ImageCreateImage("/p"+i+".png");}images=null;---------------------------------我就写一些伪代码吧,,,你是直接把对象数组置空,但实际上每个对象的引用还在,并没有被释放。。
解决方案八:
记得好象有个finaly(){//...}方法,具体怎么实现你可以查查,我有点模糊,用来释放资源的另外J2ME优化方面,有说过,最好不要定义全局变量,你的置空可能是把全局置空,或者你的置空指向的不是你要置空的对象或者引用吧?多看看优化就行了,没必要刻意去置空.