如果我没记错的话,ArrayList 包含存储您添加到列表中的变量的内存位置的值。因此,我的假设是,当您调用 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 仍将包含先前给定的值。我错了吗?