我有一堆对象在 ArrayList
中,如果我调用 ArrayList.remove(object)
,我需要做任何其他事情来从内存中删除该对象吗?我正在以相当快的速度向该列表添加和删除对象,因此,如果它没有从内存中删除,它将开始占用空间并开始减慢游戏的速度。
我有一堆对象在 ArrayList
中,如果我调用 ArrayList.remove(object)
,我需要做任何其他事情来从内存中删除该对象吗?我正在以相当快的速度向该列表添加和删除对象,因此,如果它没有从内存中删除,它将开始占用空间并开始减慢游戏的速度。
- 当你调用 ArrayList.remove(object)
时,你只是从 List
中删除对象而不是从内存中删除。
- 决定何时从堆中删除对象取决于 Garbage Collector
,在正常情况下,当一个对象没有引用时,它准备进行垃圾回收。
- 有一个经典的例子说明为什么 Java 中的对象 String
不应该用于存储密码,而应该使用 char[]
。
请查看此链接...
Java自动进行垃圾回收。因此,一旦一个对象不再被引用,它可以被删除,但这并不意味着它会被立即删除。垃圾回收是自动的,您可以通过调用System.gc()来请求执行,但这只是建议性的。
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/System.html#gc%28%29