gpt4 book ai didi

java - 在循环中定义 java 对象,是否需要使用 null 来释放内存?

转载 作者:行者123 更新时间:2023-11-29 06:43:19 38 4
gpt4 key购买 nike

如果我有一个循环并在其中创建一个新对象

for ( int i ; i < 10 ; i++)
{
MyObject obj = new MuObject();
obj.use();
}

我是否需要在循环的开始或结束时说 obj = null 以释放该对象使用的内存,或者通过使用“new”将该对象发送到 GC?我可以在内存使用方面看到这一点吗?

更新:如果我有大对象和长循环,我应该将对象分配给 null 还是不分配?

最佳答案

检查这个:http://javarevisited.blogspot.com/2011/04/garbage-collection-in-java.html

“如果无法从任何 Activity 线程或任何静态引用访问对象,则该对象有资格进行垃圾收集或 GC”。循环结束后,您在循环内创建的对象没有任何指向它们的外部引用,并且符合垃圾回收条件。

编辑:
如果您想查看内存使用情况,您可以使用具有此类功能的 IDE 来分析您的应用程序。例如,NetBeans 有一个很好的界面,可以显示对象分配的实时内存使用情况。

编辑 2:
“所以如果我有大对象和长循环,我应该将对象分配给 null 还是不分配?”
不,您不需要这样做。一旦循环的一次迭代完成,就没有对该迭代中创建的任何对象的 Activity 引用,因此循环长短都无关紧要。

关于java - 在循环中定义 java 对象,是否需要使用 null 来释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9058941/

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