那么,我已经开发了一个java应用程序使用几个对象的关系,使内存使用过于昂贵。我没有管理Java内存的经验,因为应用程序设计使得难以销毁对象并重新利用先前清除的空间。例如,我正在使用Observer和MVC模式。如何销毁java对象?
所以,理论上说..
一个物体变得符合垃圾收集或GC从任何活动线程或任何静态参考
换句话说,如果它不是 到达你可以说如果一个对象的所有引用都为null,那么这个对象就有资格进行垃圾回收。
但是,在我短暂的经历中,对于我来说,当你有像我这样的场景时,我想从内存中删除所有从内存中删除的对象的引用(例如,当一个框架关闭时)不知道你的类有多少个引用存在。
根据这种情况,当有多个引用时,我该如何处理对象破坏?或者当你有彼此复杂的引用时,如何管理内存?
了解!但是......如何在可以添加(例如)多重数组列表时添加一个对象?设置'object = null'会删除所有引用? – manix 2012-07-10 00:21:33
@manix:不,它不会。那只会在当前范围内将名为'object'的引用置空。您需要从所有这些列表或任何其他容器中删除此对象。 – haylem 2012-07-10 00:23:07
@halem多重阵列列表是短命还是长命?如果他们短暂,那么没有问题。在ArrayList不再可及之后,垃圾收集器将发挥它的魔力。如果数组列表长期存在,那么它的所有元素都将在其生命周期内可到达,除非你做了一些事情。我建议短命阵列列表。 – emory 2012-07-10 00:26:47