gpt4 book ai didi

java - 垃圾收集器如何释放那些没有任何引用名称创建的新对象

转载 作者:行者123 更新时间:2023-12-01 21:57:58 25 4
gpt4 key购买 nike

我有一个类响应

public class Response
{
public Response(String response,String platform,String url)
{
this.response =response;
this.platform = platform;
this.url = url;
}
...
}

通过 DAO 将此对象保存在表中

{
Response response = null;
response = new Response(jsonObject.toString(), platform, url);
sendgridResponseDAO.save(response);
...
}

{
sendgridResponseDAO.save(new Response(jsonObject.toString(), platform, url));
}

两者在功能上是相同的。请帮助我理解第二种方式,垃圾收集器如何以及何时释放这些新对象?第二种方法会产生内存问题并降低系统速度吗?哪一个效率高?

最佳答案

您所说的“引用名称”只是指向给定对象的另一个引用,在本例中它是一个局部变量。

一旦从任何垃圾收集根都无法访问该对象,它将被垃圾收集。

只要 save 方法正在运行,Response 对象在两种情况下都可以通过该方法的参数访问(无论是不是您首先将其分配给局部变量)并且 save 方法很可能会在某处存储对该对象的引用(以便稍后提交实际上可以保存数据),因此在这种特定情况下局部变量不太可能导致垃圾收集行为出现任何差异。

关于java - 垃圾收集器如何释放那些没有任何引用名称创建的新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com