在 Spring 服务中,我应该在方法末尾设置 null 或空列表以节省内存吗?

In a Spring service, should I set null or empty lists used in the end of a method to save memory?

我正在使用 spring 启动(由 JHipster 生成)和一些使用列表作为字段的服务。
我想知道我是否应该在使用它的方法末尾清空或取消此列表。
对 JVM 内存有影响吗?
考虑到此方法每天可以调用 100 次以上,并且考虑到每个用户都有自己的执行上下文,因此据我所知,字段不会删除以前的字段。

示例:

package fr.vyvcareit.poccarto.service;

//imports

@Service
@Transactional
public class SiteService {

    //Liste temporaire pour repérer les doublons
    private List<String> siteCodesDansImport ;

    public SiteService() {  }

    public void preImportSiteError(List<Object> rows) {

        this.siteCodesDansImport = new ArrayList<String>();

        for (int i = 0; i < rows.size(); i++) {      
            checkSiteCode(int num_ligne, HashMap row);
        }
        // I'm all done, I do not need this.siteCodesDansImport anymore...
        this.siteCodesDansImport=null; // => Is this line important for java memory ???

    }

    private void checkSiteCode(int num_ligne, HashMap row){
        ...
        siteCodesDansImport.add(site_code);
        ...
    }
}

如有任何帮助,我们将不胜感激!

默认情况下,Spring bean 具有单例作用域。这意味着您的服务每个应用程序只有一个实例。在单例 bean 上拥有字段不是线程安全的,应该避免。

每个新请求都会覆盖您的 collection 状态,并且请求会影响彼此的状态,这将导致不可预测的行为。

永远不要将状态存储到单例 bean 的字段变量中。

对于您的collection,只需使用局部变量。通过方法参数传递它(例如传递给 checkSiteCode)。结束执行时,不需要设置为null。 Java GC 会处理它。