如果我没有弄错,ArrayList包含存储位置的值,其中存储了添加到列表中的变量。所以,我的假设是,当你调用ArrayList.clear()方法时,它只释放前面提到的值(内存位置),但不会释放这些内存位置本身。我会尽力来说明这一个例子:ArrayList.clear()方法是否释放内存?
比方说,你已经得到的记忆当前状态:
[Memory location] (type of variable) *value*
[1000] (int) 32
[1002] (int) 12
[1003] (float) 2.5
而且您将它们添加到列表myList中,所以它包含指向1000, 1002,1003个存储位置。
当您调用myList.clear()时,指针将被取消,但内存位置1000,1002,1003仍将包含先前给定的值。我错了吗?
http://stackoverflow.com/questions/6757868/map-clear-vs-new-map-which-one-will-be-better可以帮助你 –
请注意,'ArrayList'永远不会包含像'int'这样的基本类型,但是像Integer这样的对象。这最终对于答案是相当重要的。 –