垃圾收集器特点:
1,垃圾收集器的主要目标是回收已经无用的对象的内存空间,从而避免内存泄漏体的产生,节省内存资源,避免程序代码的崩溃。
2,垃圾收集器判断一个对象的内存空间是否无用的标准是:如果该对象不能再被功能中任何一个“alive”的部分所引用。
3,垃圾收集器线程不可以被强制执行,但可以通过System.gc()方法来建议执行垃圾收集器。
4,垃圾收集器不能保证一个无用的对象一定会呗垃圾收集器收集,也不能保证垃圾收集器在一段JAVA语言代码中一定会执行。
5,没有办法预知在一组均符合垃圾收集器收集标准的对象中,哪一个会被首先收集。
6,循环引用对象不会影响其被收集。
7,可以通过将对象的引用变量初始化为Null值,来暗示垃圾收集器来收集该对象。
8,每个对象都有一个finalize()方法,这个方法从Object类继承来。finalize()方法用来收集内存以外的系统资源,每个方法只能调用finalize()一次。
9,垃圾收集器跟踪每一个对象,收集那些不可到达的对象,回收其占有的内存空间,但在进行垃圾收集的时候,垃圾收集器会调用finalize()方法,
通过让其他对象知道它的存在,而使不可到达的对象复苏为可到达的对象。
10,当一个方法执行完毕,其中的局部变量就会超出使用范围,此时可以被当作垃圾收集,但以后当该方法再次被调用的时候,其中的局部变量被重新创建。
释放堆栈空间:
if (img!=null)
{
for(int i =0; i<img.length;i++)
{
if(img[i] != null)
img[i] = null;
}
img = null;
}