java new对象 =null_在Java中将对象分配为null会影响垃圾回收吗?

通常,没有。

但就像所有事情一样:这取决于。如今,Java中的GC非常好,所有内容都应该在不再可用后立即清理。这就是在为局部变量留下一个方法之后,以及当不再为字段引用类实例时。

如果您知道它将继续引用,则只需要显式为null。例如,保持在周围的阵列。您可能希望在不再需要数组的各个元素时将其置零。

例如,这个代码来自ArrayList:public E remove(int index) {

RangeCheck(index);

modCount++;

E oldValue = (E) elementData[index];

int numMoved = size - index - 1;

if (numMoved > 0)

System.arraycopy(elementData, index+1, elementData, index,

numMoved);

elementData[--size] = null; // Let gc do its work

return oldValue;}

此外,只要没有引用仍然存在,显式地使对象无效就不会导致对象被收集得比它刚刚自然超出范围。

都:void foo() {

Object o = new Object();

/// do stuff with o}

和:void foo() {

Object o = new Object();

/// do stuff with o

o = null;}

在功能上是等同的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值