假设整数向量:分配零和垃圾收集在Java中
Vector<Integer> v = new Vector<>();
v.add(14);
...
v.add(47);
..
现在我想释放内存此向量。我试图从垃圾收集的角度弄清以下三种说法的区别。
选项1:
v.clear(); /*This will iterate over each object reference contained in v and assign null to it.*/
v = null;
选项2:
v = null;
选项3:
v = new Vector<>(); /*Just to be clear, I understand this statement also assigns a new object to v. :)*/
这是有道理的选项2和3是在垃圾收集换算的当量,但我想确定。任何人都可以帮助这三者之间的区别吗?
具体而言:如果使用选项2,无论如何都会释放为什么我需要清除?
向量在很大程度上是一个遗留集合,在1998年被ArrayList取代。 –
如果您计划重用集合,则只需清除集合()。减少垃圾 –
选项4:*完全不做任何事情*正常工作,v *仍然*收集垃圾。 Java为你处理这件事,你不必明确地做。 –