当我从Java中删除ArrayList中的1个对象时.接下来发生什么?

Phú*_*áng 5 java memory-management reference arraylist internal

我有一个像这样简单的arraylist:..

ArrayList<SP> sps = new ArrayList<SP>();
sps.add(new SP("1"));
sps.add(new SP("2"));
sps.add(new SP("3"));
Run Code Online (Sandbox Code Playgroud)

..当我从该列表中删除1个对象时.接下来发生什么?该列表只删除该对象的引用,然后对象自动释放该内存区域(因为没有引用该对象的内存)或该对象是由该列表直接从该内存区域释放的?

P/s:抱歉我的英语不好.

dim*_*414 10

如果调用ArrayList.remove()给定索引处的元素,则从列表中删除(并且跟随它的所有元素向下移动一个索引).对象本身仍然存在,尚未释放内存.

如果在从列表中删除对象后,应用程序中没有对该对象的剩余引用 - 这意味着它现在已被程序使用 - 垃圾收集器将自动释放与该对象关联的内存,以便可以重用它.