日期:2014-05-20  浏览次数:21013 次

List添加为空的数组执行后会被回收不
Integer inte = new Integer(10);
  List<Integer> list = new ArrayList<Integer>();
  list.add( inte );
  inte= null;

这段代码执行后inte和list会被回收不

------解决方案--------------------
不会。

new Integer(10); 这个对象已经被list所引用,你就算清空了inte这个变量,也不会影响list的引用。

要能彻底释放new Integer(10);,就要用 list.remove()
------解决方案--------------------
list肯定不会的。。。它里面还有一个为10的元素呢。
------解决方案--------------------
有变量引用它,他就不会

inte= null; 只是把new Integer(10); 的一个引用清空 ,但是list还引用了 new Integer(10);
创建的对象 ,所以应该不会回收

------解决方案--------------------
不会的,已经被LIST保存起来了
------解决方案--------------------
探讨
这段代码执行后inte和list会被回收不

------解决方案--------------------
没区别。你混淆了 变量 和 对象。
------解决方案--------------------
探讨

引用:
这段代码执行后inte和list会被回收不


不过呢,因为你这段代码其实是在一个函数内,那么这个函数执行完毕后,所有函数内所定义的临时变量全都可以被回收掉。