gpt4 book ai didi

java - 如何正确清理内存?

转载 作者:行者123 更新时间:2023-12-01 17:13:23 25 4
gpt4 key购买 nike

我有以下代码

Vehicle v=  new Vehicle();
Car car = v.getCar();
v.clear();

车辆中的clear()是

clear()
{
car=null;
}

我试图确保在调用 clear() 之后,没有其他人可以访问汽车对象。我可以像上面那样将其设置为 null,但它不会阻止其他任何人保存对它的引用,并且仍然可以访问内存位置以获取其中的数据。

我不想调用System.gc()

用例是,注销后,我需要清除内存中存储的所有内容。存储机制也是单例的。即使我避免使用单例,这个问题仍然存在

最佳答案

一旦您向外部调用者提供引用,您就可以忘记管理其引用对象生命周期的任何希望。调用 System.gc() 也是徒劳的,因为垃圾收集器不会触及可访问的对象。

您必须设计您的应用程序,以便永远不会公开对您希望在注销时释放的对象的引用。通常这是一个相当艰巨的任务,因此您应该三思是否真的有必要。

关于java - 如何正确清理内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23010810/

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