我正在接管以前开发人员的一些应用程序.当我通过Eclipse运行应用程序时,我看到内存使用情况和堆大小增加了很多.经过进一步调查,我发现他们正在循环中创建一个对象以及其他东西.
我开始经历一些清理工作.但是我经历的越多,我就越想问"这实际上会做什么吗?"
例如,不是在上面提到的循环之外声明变量而只是在循环中设置它的值......它们在循环中创建了对象.我的意思是:
for(int i=0; i < arrayOfStuff.size(); i++) {
String something = (String) arrayOfStuff.get(i);
...
}
Run Code Online (Sandbox Code Playgroud)
与
String something = null;
for(int i=0; i < arrayOfStuff.size(); i++) {
something = (String) arrayOfStuff.get(i);
}
Run Code Online (Sandbox Code Playgroud)
我不正确地说底部循环更好吗?也许我错了.
另外,在上面的第二个循环之后,我将"某些东西"设置为null?这会清除一些记忆吗?
在任何一种情况下,我可以遵循哪些良好的内存管理最佳实践,这将有助于在我的应用程序中保持低内存使用率?
更新:
到目前为止,我感谢每个人的反馈.但是,我并没有真正询问上面的循环(尽管根据你的建议,我确实回到了第一个循环).我正在努力获得一些我可以留意的最佳实践."当你完成使用Collection时,清除它"的界限.我真的需要确保这些应用程序不会占用太多内存.