Java 取消引用未使用的对象是否会提高冗长方法的性能?

Java 取消引用未使用的对象是否会提高冗长方法的性能?,java,standards,Java,Standards,可能重复: 在冗长的方法中,取消对未使用对象的限制(赋值为null)会提高性能吗?如果它增加,是否有任何拇指规则来决定何时分配null。因为这需要在代码中添加一个额外的步骤。粗略地说,它不是或者说不太可能。这就是我的方法 通过拆分长方法引入新方法,并适当命名这些方法 现在检查性能问题的具体位置。您可以使用一些探查器,但即使记录每个方法的开始时间和结束时间,也会提供一些想法 那就把它修好 这取决于上下文。如果将空值分配给未使用的对象,则该对象将符合垃圾收集的条件。但是不能保证内存会被释放。请参阅

可能重复:


在冗长的方法中,取消对未使用对象的限制(赋值为null)会提高性能吗?如果它增加,是否有任何拇指规则来决定何时分配null。因为这需要在代码中添加一个额外的步骤。

粗略地说,它不是或者说不太可能。这就是我的方法

  • 通过拆分长方法引入新方法,并适当命名这些方法
  • 现在检查性能问题的具体位置。您可以使用一些探查器,但即使记录每个方法的开始时间和结束时间,也会提供一些想法
  • 那就把它修好

  • 这取决于上下文。如果将空值分配给未使用的对象,则该对象将符合垃圾收集的条件。但是不能保证内存会被释放。

    请参阅[将Java对象设置为null是否还有任何作用?]()。请注意,取消引用是一个错误的词。这意味着遵循指针/引用;在Java中,它基本上是在对象上使用
    。感谢Matthew Flaschen。通常不需要将局部变量赋值为null。如果你的方法太长,会产生影响,我建议将你的方法分解成更易于管理的子方法,你会发现它不再有任何优势。@Peter:嘿,伙计,看看我的答案。有什么显著不同吗?;)@Adeel,与建议1和一小时前非常相似不确定探查器在这种情况下是否有帮助,但您的建议是正确的,因为探查器可能会发现代码的其他部分对性能的影响更大。