之前想清空集合的元素,直接调用api clear()函数,突然想如果clear后只是把元素删除了,而没有释放内存地址空间,因为ArrayList是动态的分配内存,以后越来越多,会不会导致内存溢出。查看clear()函数源码:
/** * Removes all of the elements from this list. The list will * be empty after this call returns. */ public void clear() { modCount++; // clear to let GC do its work for (int i = 0; i < size; i++) elementData[i] = null; size = 0; }可以看到,把集合中元素赋值为null,gcc会对其内存进行回收。