其实不然,让我们先了解一下垃圾收集的工作原理。垃圾收集器的工作就是寻找那些不再被应用程序需要的对象,当它们不会再被访问或引用的时候清除它们。(注意是在不会再被访问或引用的时候才清除它们)
例如:class A 引用 class B的实例
class B
{
}
class A
{
B refB = new B();//在这里开始引用了
//这样在class A 的整个生命周期内,refB所占的内存空间将不会得到释放
//因为垃圾收集器会一直认为实例B一直被refB引用
}
正确的处理方式是
class A
{ B refB = new B();//在这里开始引用了 //使用了refB一段时间后 //如果下面的程序不在需要refB,那么就将它设置为null refB = null; //这样垃圾收集器就会将实例B所占用的内存空间回收掉 }
所以我们需要明确的极为关键的一点是:一个对象只有当它不再被引用的时候才会被当作是无用的。
{
B refB = new B();//在这里开始引用了
//使用了refB一段时间后
//如果下面的程序不在需要refB,那么就将它设置为null
refB = null; //这样垃圾收集器就会将实例B所占用的内存空间回收掉
}
所以我们需要明确的极为关键的一点是:一个对象只有当它不再被引用的时候才会被当作是无用的