我有一个像这样的简单数组列表: ..
ArrayList<SP> sps = new ArrayList<SP>();
sps.add(new SP("1"));
sps.add(new SP("2"));
sps.add(new SP("3"));
.. 当我从该列表中删除 1 个对象时。 接下来会发生什么? 该列表只是删除该对象的引用 然后对象自动释放该内存区域 (因为没有引用该对象的内存) 或者 该对象被该列表直接从该内存区域释放了?
P/s:抱歉我的英语不好。
最佳答案
如果您调用 ArrayList.remove()
给定索引处的元素从列表中删除(并且它后面的所有元素都向下移动一个索引)。对象本身仍然存在,尚未释放任何内存。
如果从列表中删除该对象后,您的应用程序中没有对该对象的剩余引用 - 这意味着它现在未被您的程序使用 - Garbage Collector将自动释放与该对象关联的内存,以便可以重复使用。
关于java - 当我从 Java 中的 ArrayList 中删除 1 个对象时。接下来会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42453913/