我正在编写一个 android 应用程序,其中包含一些小对象链表的链接列表(每个可能有 3 打 1000 个对象)。
我想选择内存管理策略,因为我经常需要删除并重建它们(由于数据是相互依赖的,因此它比修改状态更容易。
我不知道我是否可以依靠只能在调试模式下工作的 DDMS 工具来处理如此小的列表。
删除其中一个时,我想知道是否通常只清除它(希望 GC 会清除子列表),或者我是否必须自己访问整个结构。
换句话说,我应该
LinkedList<LinkedList<MyObject>> theList = getTheList();
void free(){
theList.clear();
}
或
void free(){
LinkedList<MyObject> subList;
for(subList:theList) subList.clear();
theList.clear();
}
?
一旦 List 元素未被引用,垃圾回收器将自动清理它们。您的第一个建议就足够了。
c++。在java中很常见,如果您没有任何其他对象引用它们并且将来不会使用它们,GC将删除它们。我会保持简单清晰。
换句话说,如果你想加快你的程序,通过在重新创建这个结构时使用更少的new
运算符,我建议使用对象池并重用创建的对象。