java - 垃圾回收 : Will the object be collected

标签 java garbage-collection

<分区>

Possible Duplicate:
Does setting Java objects to null do anything anymore?

我在一个方法中一次又一次地使用同一个变量,并多次将它引用到一个新对象。从垃圾收集的角度来看,在引用一个新对象之前先将其无效是一种好习惯吗。

例子:

StopWatch watch = new StopWatch();
watch.start();
//some code
watch.stop();
//some code
watch = null;
watch = new StopWatch();
watch.start();
//some code
watch.stop();
//some code

不确定在这种情况下取​​消它是否会对 GC 产生影响。请指导。

谢谢!

最佳答案

此时分配 null 没有任何区别,因为您将立即为该变量分配一个新值。

在 Java 中,将 null 赋值给一个变量并没有什么“神奇”的地方。它不会导致对象立即被垃圾回收。它所做的只是打破(可能)许多“路径”之一,通过这些路径可以到达所讨论的对象。如果路径在下一次 GC 运行之前自行中断/消失,则分配 null 将无济于事。

通常不值得在 Java 中清空变量或字段,而且对于即将被覆盖或即将超出范围的局部变量当然也不值得这样做。

关于java - 垃圾回收 : Will the object be collected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14191808/

相关文章:

java - 物体会 self 毁灭吗? ( java )

c# - 将结构传递到接口(interface)字段是否分配?

java - JMeter 在哪里保存测试/应用程序日志?

java - 使用 JMF 调整视频大小

java - REST API 的多个参数

java - 删除android中链表的链表

java - 如何将不同类的图形组件添加到 jframe 中?

java - 在Java中调用命令行程序

memory-management - 为什么纯函数式语言不使用引用计数?

java - 如何在 Android 中即将被垃圾收集时将静态成员保留在共享首选项中