我MainPanel里有个List<Operation>,当堆栈用的。每次最上面一个堆栈的Operation操作完之后,也没有析构函数。
自己写了个destruction()
就是纯粹地MainPanel.operationList.remove(operationList.size()-1);
请问这样会不会造成使用的内存回收不利?我每次程序要大量创建Operation?Java会回收吗?
是不是要转移到另一个recycleList,然后定期对recycleList=null才好?
------解决方案--------------------
不需要
operationList.remove(operationList.size()-1);
这一步里会将operationList中最后一个元素赋值为null
那么对应的堆中的对象就失去了引用
之后的垃圾回收会自动把它回收的
------解决方案--------------------
gc会回收的,直接用add,remove即可