假設整數向量:分配零和垃圾收集在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爲你處理這件事,你不必明確地做。 –