如果我没弄错的话,ArrayList包含存储位置的值,在这些位置中存储了你添加到List中的变量.所以,我的假设是,当你调用ArrayList.clear()方法时,它只释放上述值(内存位置)但不释放这些内存位置本身.我将尝试用一个例子来说明这一点:
假设您已拥有内存的当前状态:
[Memory location] (type of variable) *value*
[1000] (int) 32
[1002] (int) 12
[1003] (float) 2.5
Run Code Online (Sandbox Code Playgroud)
然后将它们添加到列表myList中,因此它包含指向1000,1002,1003内存位置的指针.
当您调用myList.clear()时,指针将无效,但内存位置1000,1002,1003仍将包含先前给定的值.我错了吗?