在使用后为每个应用程序中的对象分配"null"

Dra*_*orn 6 java garbage-collection coding-style

  • null在达到范围后,您是否总是分配给对象?

  • 或者你依靠JVM进行垃圾收集?

  • 您是否为所有类型的应用程序执行此操作而不管其长度如何?

  • 如果是这样,它总是一个好习惯吗?

Tay*_*ese 11

除非您有非常具体的原因,否则没有必要将对象显式标记为null.此外,我从未见过在不再需要时将所有对象标记为null的应用程序.垃圾收集的主要好处是内在的内存管理.

  • 我觉得你的措辞太字面了 (2认同)
  • 我这样做是为了安抚你,因为你解释我的评论不是我的意图 (2认同)

Mar*_*ell 8

  • 不,不这样做,除了特殊情况下,如静态字段,或当你知道一个变量/场过着很多不是代码引用它不再
  • 是的,但具有VM的限制的工作知识(以及如何意外地导致内存块)
  • N/A


Tof*_*eer 6

我声明几乎所有的变量都是"最终的".我也使我的方法变小,并将大多数变量声明为方法的局部变量.

因为它们是最终的,所以我不能在使用后将它们分配为空...但这很好,因为方法很小,一旦它们返回,对象就有资格进行垃圾收集.由于大多数变量都是局部变量,因此意外保持参考的可能性比所需的时间长(内存泄漏)的可能性更小.